当存在nan值时,为什么这个list vs array evaluation返回false?

2024-04-20 09:53:31 发布

您现在位置:Python中文网/ 问答频道 /正文

考虑一下这个简单的评估:

import numpy as np

aa = np.array([[np.nan, np.nan], [1.64, 0.0784]]) 
bb = [[np.nan, np.nan], [1.64, 0.0784]]

np.all(aa == bb)

它返回False,即使aa数组等于bb列表。如果我对aa, bb中的每个元素都这样做,我会得到:

np.all(aa[0] == bb[0])
False
np.all(aa[1] == bb[1])
True

这意味着这里的问题是nan值。为什么会这样


Tags: importnumpyfalse元素列表asnp数组
1条回答
网友
1楼 · 发布于 2024-04-20 09:53:31

根据定义,nan与任何对象(使用内置操作数)相比,返回False。尤其是,np.nan == np.nan返回False

但是请注意,!=被定义为==的否定,因此我们得到:

>>> import numpy as np
>>> np.nan == np.nan
False
>>> np.nan != np.nan
True

您可以直接使用

>>> np.isnan(np.nan)
True

相关问题 更多 >