gpt4 book ai didi

python - 为什么 (nan,)==(nan,) 为 True,而 nan==nan 为 False?

转载 作者:行者123 更新时间:2023-12-01 06:53:35 27 4
gpt4 key购买 nike

我只是觉得这有点奇怪。环境是Python v3虽然我觉得这个表达方式看起来不错

import numpy as np
np.nan==np.nan

返回False当在元组中使用时:

(np.nan,)==(np.nan,)

它返回True

最佳答案

正如 numpy 文档中提到的:

np.nan == np.nan # is always False! Use special numpy functions instead.

我假设在比较元组时,会一个接一个地检查值,但幕后检查与显式比较不同,特别是对于 == 检查。

例如,通过比较 id(elem) 值进行检查,两个不同的 numpy.nan 的值必须相同,因此返回 true。此外,最有可能的是,在非 cpython 实现上,由于存储变量值的内部优化,结果可能是错误的。

此外,您可以查看 numpy.nan 的神奇实现,这可能会让您对比较操作幕后发生的事情有更多的了解。

关于python - 为什么 (nan,)==(nan,) 为 True,而 nan==nan 为 False?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58899834/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com