【发布时间】:2021-09-16 05:31:39
【问题描述】:
为什么math.nan 与numpy.nan 不同?
>>> import math
>>> import numpy as np
>>> math.nan is math.nan
True
>>> np.nan is np.nan
True
>>> np.nan is math.nan
False
拥有两个不同的 NaN 有什么意义?
【问题讨论】:
-
它们是单独创建的,因此它们是单独的对象。它们具有相同的值(即使该值不等于自身)。
-
它变得更糟:
np.nan == np.nan返回False。 -
NaN 不是单例。 NaN 是一种具有特殊解释的位模式(实际上,有许多不同的 NaN,因为 NaN 可以具有“有效负载”)。同一个 NaN 可以有多个实例,就像 1.0 可以有多个实例一样。试试这个:
x = 1.0; y = 1.0; print(x is y)。输出为 False。
标签: python python-3.x numpy math nan