我在python上有一个数组A,它有一些由numpy.nan创建的nan值。我想使用A[A==numpy.nan] = 0
将所有nan值设置为零。它根本不会改变阵列。那是为什么?
答案 0 :(得分:11)
您想要np.isnan
:
A[np.isnan(A)] = 0
您的代码存在的问题是(根据IEEE),nan
不等于任何东西 - 甚至本身。
作为旁注,还有
np.isinf
- > (+/-无穷大)np.isfinite
- > (不是无限或NaN)np.isposinf
- > (+无穷大)np.isneginf
- > ( - 无限)答案 1 :(得分:1)
您可以使用numpy函数将矩阵x处的所有nan值更改为零。
{{1}}