4

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

4

2 回答 2

11

你想要np.isnan

A[np.isnan(A)] = 0

您的代码的问题在于(根据 IEEE),nan不等于任何东西——甚至它本身。

作为旁注,还有

  • np.isinf->(+/- 无穷大)
  • np.isfinite->(不是无穷大或 NaN)
  • np.isposinf-> (+ 无穷大)
  • np.isneginf-> (- 无穷大)
于 2012-11-09T02:27:45.513 回答
1

您可以使用 numpy 函数将矩阵 x 处的所有 nan 值更改为零。

numpy.nan_to_num(x)
于 2016-06-20T02:29:11.330 回答