为什么在numpy中,“ nan == nan”是False而[nan]中的nan是True?

为什么在numpy中,“ nan == nan”是False而[nan]中的nan是True?,第1张

为什么在numpy中,“ nan == nan”是False而[nan]中的nan是True?

nan
不等于是
nan
的定义的
nan
一部分,因此很容易。

至于

nan in [nan]
是真实的,那是因为在相等性之前对身份进行测试以包含在列表中。您正在比较相同的两个对象

如果您对两个 不同的

nan
s尝试相同的 *** 作,则会得到False:

>>> nans = [float("nan") for i in range(2)]>>> map(id, nans)[190459300, 190459284]>>> nans[nan, nan]>>> nans[0] is nans[1]False>>> nans[0] in nansTrue>>> nans[0] in nans[1:]False

您的附录实际上与无关

nan
,这只是Python的工作方式。一旦您了解了
float("nan")
它没有义务返回一些nan
singleton,并且
y = x
不复制它,
x
而是将名称绑定到名为
y
的对象
x
,那么就什么也没有了



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5631607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存