将数组的值从nan更改为零

f.a*_*uri 4 python arrays numpy

我在python上有一个数组A,它有一些由numpy.nan创建的nan值.我想使用将所有的nan值设置为零A[A==numpy.nan] = 0.它根本不会改变阵列.这是为什么?

mgi*_*son 11

你想要np.isnan:

A[np.isnan(A)] = 0
Run Code Online (Sandbox Code Playgroud)

你的代码的问题是(根据IEEE),nan不等于任何东西 - 甚至本身.

作为旁注,还有

  • np.isinf - >(+/-无穷大)
  • np.isfinite - >(不是无穷大或NaN)
  • np.isposinf - >(+无穷大)
  • np.isneginf - >( - 无穷大)