Numpy 2 有一个单独的 float64(nan) - 如何摆脱它?

问题描述 投票:0回答:1

Numpy 2 似乎引入了自己单独的

float64(nan)
- 与
np.nan
不同。现在回归测试失败了,因为 while

>>> np.nan is np.nan
True

我们现在有

>>> np.nan is np.float64("nan")
False

(json 也无法序列化那些新的

NaN
)。

他们为什么要做出这样的改变?

有没有办法自动将 numpy 浮点数转换为普通浮点数?

python numpy nan
1个回答
0
投票

有几个 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
© www.soinside.com 2019 - 2024. All rights reserved.