python - netCDF 文件中的 numpy 数组中的值无效(打印为 '--' )

标签 python arrays python-2.7 numpy netcdf

我通过 netCDF4 将 netCDF 文件读取到 python 中。 我得到的数组包含无效值,打印为 --,例如:

[[[-- -- -- ..., 0.0 0.0 0.0]
  [-- -- -- ..., 0.0 0.0 0.0]
  [-- -- -- ..., 0.0 0.0 0.0]]

 [[-- -- -- ..., 0.0 0.0 0.0]
  [-- -- -- ..., 0.0 0.0 0.0]
  [-- -- -- ..., 0.0 0.0 0.0]]]

这些值来自哪里,我如何识别(和替换)它们?诸如 numpy.isnan 之类的东西也会返回我 -- 作为结果。我可以稍后将这些数组与 -- 一起使用而不会崩溃(例如,我可以绘制它们),但它们对于某些操作似乎存在问题。

例如,我曾经做过类似的事情

numpy.mean(myarray, axis=(1,2)) # the tuple for `axis` is not very regular

在源 self 的 netCDF 文件的 myarray 上,之前没有任何问题,但我收到 TypeError: tuple Index must be integers, not tuple 以及这些奇怪的 崩溃>---填充数组...

我正在使用 python 2.7.9(如果与打印到屏幕格式相关,则使用 PyCharm 进行代码编辑)。

最佳答案

你这里有一个 masked array ,其中 -- 表示屏蔽元素。

只需使用myarray.datamyarray.mask分别获取数据和无效元素。

很可能,一个屏蔽的 numpy 数组被故意保存在该 netcdf4 文件中,可能是有原因的。所以我会继续使用这个屏蔽数组。正如您所注意到的,大多数 Numpy/Scipy/Matplotlib 函数(例如 numpy.mean)都有特定的处理逻辑。

关于python - netCDF 文件中的 numpy 数组中的值无效(打印为 '--' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30193089/

相关文章:

python - 在Python中查找两个字典列表之间的差异

python - 如何创建一个在特定时间结束的 Python 循环?

python:array([...]) 是什么意思?

javascript - 按位置访问文档元素时检测数组

javascript - 如何动态地创建一个对象?

python - 如何让 Python 使用 raw_input 值作为定点数?

python - 在 pandas 数据框中获取几年内工作日某个小时的平均值

javascript - 如何对对象数组进行排序和切片

python - 使用 OpenCV 检测彩色圆圈及其中心

algorithm - 解决来自 Kattis 的编程挑战 : Apparatus,