netCDF文件

时间:2015-05-12 13:57:24

标签: 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
来自我的netCDF文件的myarray上的

没有任何问题,但是我得到TypeError: tuple indices must be integers, not tuple并且这些奇怪的--填充数组崩溃...

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

1 个答案:

答案 0 :(得分:3)

这里有masked array,其中--代表蒙面元素。

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

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