Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python np.nan和'=='&';是';_Python_Identity_Equality - Fatal编程技术网

python np.nan和'=='&';是';

python np.nan和'=='&';是';,python,identity,equality,Python,Identity,Equality,当我检查Python操作数的相等性和标识时,例如a=[];b=a我知道: a == b => True a is b => True 我理解 那么,为什么我用np.nan得到不同的结果呢 a = np.nan; b = a a == b => False a is b => True 因为NaN从来都不等于其他任何东西,而且 我们使用==来执行相等比较 另一方面,用于表示NaN的对象与自身完全相同,因为is用于进行标识比较。有趣。(+1)我用None而不是np.na

当我检查Python操作数的相等性和标识时,例如
a=[];b=a
我知道:

a == b => True
a is b => True
我理解

那么,为什么我用np.nan得到不同的结果呢

a = np.nan; b = a 
a == b => False
a is b => True

因为NaN从来都不等于其他任何东西,而且 我们使用
==
来执行相等比较


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

有趣。(+1)我用
None
而不是
np.nan
做了一个类似的实验。结果是
a=None;b=a;print(a==b)
打印
True
。你能给我解释一下等式和身份比较之间的区别吗?@Psycechnopath equality:两个具有相同值的对象,不一定是同一个对象。标识:完全相同的对象。因此基本上NaN==NaN返回False,因为它永远不等于任何其他对象,但是所有的np.NaN都指向同一个对象,因此np.NaN是np.NaN返回True吗?这与普通对象中的情况完全相反(例如,
a=[1,2,3]
c=[1,2,3]
a==c
返回
True
,而
a是c
返回
False
是您自己说的