You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么表达式np.nan == np.nan的返回结果为False?

为什么 np.nan == np.nan 的执行结果为 False

核心原因要从np.nan的本质和设计规则说起:

  • np.nan是numpy对IEEE 754浮点数标准中NaN(Not a Number,非数值)的实现,它用来表示无意义、未定义的数值计算结果,比如0/0、对负数取平方根这类非法运算的返回结果都是NaN。
  • IEEE 754标准明确规定:任何涉及NaN的比较运算,结果都为False,哪怕是两个NaN互相比较也不例外。

    这个设计逻辑非常好理解:NaN本身代表的是“没有有效值”,你没法判定两个都没有意义的无效值是相等的,总不能说0/0的结果和负数开平方的结果是同一个值对吧?

  • 如果实际开发中需要判断某个值是不是np.nan,不要用==比较,应该用numpy专门提供的np.isnan()方法,比如np.isnan(np.nan)的返回结果就是符合预期的True。

内容的提问来源于stack exchange,提问作者Rosalyn Cristina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:36:00