就我所知,==
檢查值是否相等,is
檢查值的結構身份(如===
一些其他語言)。np.isnan()==假,但np.isnan()不是假
鑑於這種情況,我不明白以下幾點:
np.isnan(30) == False
Out[19]:
True
np.isnan(30) is False
Out[20]:
False
它似乎不是與其他身份檢查的情況:
(5 == 4) == False
Out[22]:
True
(5 == 4) is False
Out[23]:
True
它看起來好像np.isnan()
回報False
作爲價值,但不是身份。爲什麼會這樣?
你不應該擺在首位測試'FALSE'或'TRUE'。使用'如果np.isnan(..)'和'如果不是np.isnan(..)'。沒有要求Python解釋器只使用1個布爾值對象的副本,顯然Numpy沒有。 –
@MartijnPieters似乎是一個風格評論(我很欣賞),但不是作爲函數行爲的答案? – FooBar
(也就是說,雖然我*不應該做這個操作,我*應該可以*做到這一點。不是嗎?) – FooBar