18.numpy.where的使用

本文详细介绍了NumPy库中的numpy.where函数,用于根据给定条件从两个数组中选择相应的值。函数接受条件数组、两个可选数组x和y,返回满足条件时的x值或y值。当不提供x和y时,返回条件为True的元素索引。
摘要由CSDN通过智能技术生成


欢迎访问个人网络日志🌹🌹知行空间🌹🌹


numpy.where的使用

函数介绍

numpy.where(condition, [x, y, ])
  • condition: 条件
  • x:数组,shapecondition或支持广播
  • y:数组,shapecondition或支持广播

根据conditionxy中取数值,如果condition条件为Truex对应位置的元素,否则取y对应位置的元素。

当数组都是一维的时候,函数的功能等同于以下语句:

[xv if c else yv for c, xv, yv in zip(condition, x, y)]

示例

  • [x,y]不为空
cond = [[True, False], [True, True]]
x = [[1, 2], [3, 4]]
y = [[9, 8], [7, 6]]
out = np.where(cond, x, y)
print(out)

# [[1, 8],
#  [3, 4]]

可以看到,条件为True的位置取了x的值,为False的位置取了y的值。

  • [x,y]为空
cond = [[True, True, False], [True, True, True]]
x, y = np.where(cond)
print(x,y)
# [0 0 1 1 1] [0 1 0 1 2]
print(np.stack((x, y)).T)
# array([[0, 0],
#        [0, 1],
#        [1, 0],
#        [1, 1],
#        [1, 2]])

可以看到当不传入[x,y]数组时,np.where返回的时conditionTrue位置的ij列的坐标值。可以看到上面condition对应的(0,0)/(0,1)/(1,0)5个位置都是True


1.https://numpy.org/doc/stable/reference/generated/numpy.where.html


欢迎访问个人网络日志🌹🌹知行空间🌹🌹


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值