我想检查一组值是否在numpy数组中。这样做时,我发现np.isin()
如果传递的值为,则行为会有所不同np.nan
。那是:
import numpy as np
a = np.array([2, np.nan])
print(np.isin(2, a))
print(np.isin(np.nan, a))
输出:
True
False
我有两个问题:
我如何检查是否np.nan
在数组中?
传递给时,为什么这两个值的行为不同np.isin()
?
大致等效为
any([x == np.nan for x in a.flat])
这将失败,因为nan甚至不等于其自身。这种怪异不是特定于numpy的:
>>> float('nan') in [float('nan')]
False
如何检查np.nan是否在数组中?
使用np.isnan(a).any()
代替。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句