来自 netCDF 文件的 numpy 数组中的无效值(打印为“--”)
Invalid value (printed as '--') in a numpy array from a netCDF file
我通过 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
之类的东西也会 return 我 --
结果。我可以稍后将这些数组与 --
一起使用而不会崩溃(例如,我可以绘制它们),但它们似乎对某些操作有问题。
例如,我曾经做过类似
的事情
numpy.mean(myarray, axis=(1,2)) # the tuple for `axis` is not very regular
在 myarray
之前源自我的 netCDF 文件没有任何问题,但我得到 TypeError: tuple indices must be integers, not tuple
并且这些奇怪的 --
填充数组崩溃...
我正在使用 python 2.7.9
(如果与打印到屏幕格式相关,PyCharm
用于代码编辑)。
这里是 masked array,其中 --
代表屏蔽元素。
只需使用myarray.data
和myarray.mask
分别获取数据和无效元素。
最有可能的是,一个屏蔽的 numpy 数组被故意保存在该 netcdf4 文件中,可能是出于某种原因。所以我会简单地继续使用这个掩码数组。正如您所注意到的,大多数 Numpy/Scipy/Matplotlib 函数(例如 numpy.mean
)都有处理它们的特定逻辑。
我通过 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
之类的东西也会 return 我 --
结果。我可以稍后将这些数组与 --
一起使用而不会崩溃(例如,我可以绘制它们),但它们似乎对某些操作有问题。
例如,我曾经做过类似
的事情numpy.mean(myarray, axis=(1,2)) # the tuple for `axis` is not very regular
在 myarray
之前源自我的 netCDF 文件没有任何问题,但我得到 TypeError: tuple indices must be integers, not tuple
并且这些奇怪的 --
填充数组崩溃...
我正在使用 python 2.7.9
(如果与打印到屏幕格式相关,PyCharm
用于代码编辑)。
这里是 masked array,其中 --
代表屏蔽元素。
只需使用myarray.data
和myarray.mask
分别获取数据和无效元素。
最有可能的是,一个屏蔽的 numpy 数组被故意保存在该 netcdf4 文件中,可能是出于某种原因。所以我会简单地继续使用这个掩码数组。正如您所注意到的,大多数 Numpy/Scipy/Matplotlib 函数(例如 numpy.mean
)都有处理它们的特定逻辑。