我只是觉得这有点奇怪。环境是Python v3,虽然对我来说表达式看起来还不错
import numpy as np
np.nan==np.nan要在元组中使用时返回False:
(np.nan,)==(np.nan,)它返回True
发布于 2019-11-17 19:14:50
正如numpy文档中所提到的:
np.nan == np.nan #始终为False!改用特殊的numpy函数。
我假设在比较元组时,值被一个接一个地检查,但幕后检查与显式比较不同,特别是对于==检查。
例如,检查是通过比较id(elem)值进行的,对于两个不同的numpy.nan,该值必须相同,因此它返回true。而且,在非cpython实现上,由于对存储变量值的内部优化,结果很可能是假的。
此外,您可以查看numpy.nan的神奇实现,它可能会让您更好地了解比较操作的幕后情况。
https://stackoverflow.com/questions/58899834
复制相似问题