python - 将数组的值从 nan 更改为零

标签 python arrays numpy

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

最佳答案

你想要np.isnan :

A[np.isnan(A)] = 0

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

作为旁注,还有

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

关于python - 将数组的值从 nan 更改为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13301262/

相关文章:

Python 错误 : List Object Not Callable with For Loop

python - 检查一个 DataFrame 的行是否存在于另一个 DataFrame 中

php - 在 foreach 中转换为数组是否被认为是一种不好的做法?

python - 如何迭代 3D numpy 数组

python - numpy 数组元素的累积积分

numpy:水平广播向量

python - OpenCV 安装停留在 [ 99%] Built target opencv_perf_stitching 没有错误

python - 使用多个分隔符在 python 中拆分字符串的最佳方法 - 同时保留分隔符

python - 如何在 Python 3.3.5 中添加矩阵的对角线

python-2.7 - read_csv 在 Python 中使用 pandas 将 3 列日期转换为 1 列日期格式,例如 YYYY-MM-DD