x = np.empty([2], dtype=object)
> array([None, None], dtype=object)
x[0] = 'a'
> array(['a', None], dtype=object)
我试图从这个类型为 ndarray
的对象中获取一个 bool 数组 [False, True]
,其中对象类型为 None
。
不起作用的东西:x is None
, x.isfinite()
, x == None
, np .isnan(x)
。该数组可能有 n
维度,使得 for 循环迭代看起来不愉快。
最佳答案
在 NumPy 1.12 及更早版本中,您需要显式调用 numpy.equal
以获得广播相等性比较。发表评论,以便 future 的读者了解您这样做的原因:
# Comparisons to None with == don't broadcast (yet, as of NumPy 1.12).
# We need to use numpy.equal explicitly.
numpy.equal(x, None)
在 NumPy 1.13 及更高版本中,x == None
will give you a broadcasted equality comparison , 但如果你想向后兼容早期版本,你仍然可以使用 numpy.equal(x, None)
。
关于python - 使用对象 dtype 的 ndarray 与 None 进行元素比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44295919/