簡體   English   中英

使用對象dtype的ndarray與無進行元素比較

[英]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 Nonex.isfinite()x == Nonenp.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包裝在listarray以強制進行逐元素比較:

>>> 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM