Skip to main content

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

错误代码:

for index, each in enumerate(data):
if not np.isnan(each):

data 是一个通过numpy读取生成的一维数组,我本意是想通过 np.isnan() 来判断这个一维数组中是否存在 NaN 这个非空值,因为在这个业务场景下,我的数据里面 NaN 就是代表那个位置没有数据,是一个错误值,需要使用 0 来填充。

但是直接使用 np.isnan() 直接报错了,这里提示需要使用 .any() 或者 .all() 来复制判断:

for index, each in enumerate(data).all():
if not np.isnan(each):

# 或者
for index, each in enumerate(data).any():
if not np.isnan(each):