首页 > 解决方案 > np.where 元素处理逻辑

问题描述

我有以下代码:

a = np.asarray([1,2,3,4,5,6,7])
b = 1.999
val = a[abs(a-b)<0.01]
c = np.where(val.size!=0,val[0],0)
print(c)

代码运行时没有任何问题,val.size!=0并给出了输出c = 2

但是,例如,当 val.size 的计算结果为零时,

a = np.asarray([1,3,4,5,6,7])
b = 1.999
val = a[abs(a-b)<0.01]
c = np.where(val.size!=0,val[0],0)
print(c)

我收到错误:
IndexError: index 0 is out of bounds for axis 0 with size 0

为什么它val.size=0不返回 0 而是尝试处理val[0]不满足条件的值?

标签: pythonpython-3.xnumpy

解决方案


推荐阅读