python np.nan和'=='&'is'

nai*_*tor 0 python identity equality

当我检查Python操作数的相等性和身份时,例如,a = []; b = a我得到了:

a == b => True
a is b => True
Run Code Online (Sandbox Code Playgroud)

我了解。

所以,为什么我用np.nan得到差异结果?:

a = np.nan; b = a 
a == b => False
a is b => True
Run Code Online (Sandbox Code Playgroud)

Ósc*_*pez 5

因为NaN从不等于其他任何东西,因此我们==用于执行相等比较。

另一方面,用于表示的对象NaN与其自身相同,因为is用于进行身份比较。