[英]Elementwise comparison to None with ndarray of object dtype
x = np.empty([2], dtype=object)
> array([None, None], dtype=object)
x[0] = 'a'
> array(['a', None], dtype=object)
我正在嘗試從此對象類型為ndarray
的對象類型為None
的布爾數組[False, True]
。
無效的東西: x is None
, x.isfinite()
, x == None
, np.isnan(x)
。 該數組的尺寸可能為n
維,這使循環迭代看起來不愉快。
在NumPy 1.12和更早版本中,您需要顯式調用numpy.equal
以獲得廣播的相等比較。 發表評論,以便將來的讀者理解您為什么這樣做:
# 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
將為您提供廣播的相等比較 ,但是如果要與早期版本向后兼容,仍可以使用numpy.equal(x, None)
。
您可以將None
包裝在list
或array
以強制進行逐元素比較:
>>> x == [None]
array([False, True], dtype=bool)
>>> x == np.array([None])
array([False, True], dtype=bool)
一些可行的方法是-
x < 0
x!='a'
array([True,False],dtype = bool)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.