【发布时间】:2014-11-20 20:26:35
【问题描述】:
我有一个 dtype=object 的 numpy 数组,我想创建一个布尔数组来标识哪些元素是 None。但看起来None 的行为不同......
a = np.array(['Duck','Duck','Duck','Goose',None,1,2,3,1,3,None,4])
print a == 'Duck'
print a == 3
print a == None
导致
[ True True True False False False False False False False False False]
[False False False False False False False True False True False False]
False
是否有一种“numpythonic”方法来获取 None 元素的布尔数组?我可以使用
np.array([x is None for x in a])
但这似乎应该有更好的方法。
【问题讨论】:
-
我肯定不会期望 ndarrays 对
None有不同的行为...很好! -
...特别是因为 NumPy 文档中的这句话:“每个算术运算 (+, -, *, /, //, %, divmod(), **或 pow()、>、&、^、|、~) 和比较(==、、=、!=)等价于相应的通用函数(或 ufunc短)在 Numpy 中。” 我只能假设
np.equal是==的 ufunc。
标签: python arrays python-2.7 numpy