Numpy 2 似乎引入了自己单独的
float64(nan)
- 与 np.nan
不同。现在回归测试失败了,因为 while
>>> np.nan is np.nan
True
我们现在有
>>> np.nan is np.float64("nan")
False
(json 也无法序列化那些新的
NaN
)。
他们为什么要做出这样的改变?
有没有办法自动将 numpy 浮点数转换为普通浮点数?
有几个 NaN,使用
X is Y
作为单元测试的一部分是这里的核心问题。
例如
np.inf - np.inf
产生 np.nan
:
np.inf-np.inf
# nan
然而:
np.nan is (np.inf-np.inf)
# False
如果你想知道一个对象是否为 NaN,只需使用
np.isnan
(或 math
或 pandas
等效项),而不是对象比较:
np.isnan((np.inf-np.inf))
# True