将数组的值从nan更改为零

时间:2012-11-09 02:25:54

标签: python arrays numpy

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

2 个答案:

答案 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}}