在不考虑 NaN 值的情况下对数组中的不同层进行平均
Average different layers in a Array without considering NaN value
我在三层中屏蔽了数组数据(从 NetCDF
文件访问),如下所示。我想 mean 这三层而不考虑 NaN
值(这里 -1)单元格,同时求平均值。任何建议都会有所帮助。
masked_array(
data=[[ 270, 554, -1],
[ 270, -1, 2068],
[ -1, 554, 2068],
...,
[ -1, -1, 1349],
[ 704, 1019, -1],
[ 704, 1019, 1349]],
mask=False,
fill_value=999999,
dtype=int16)
输出应该是这样的:
data=[[412],
[1169],
[1311],
...,
[1349],
[861.5],
[1536]]
使用pythonic方式:
import numpy as np
# get data from masked array
d = np.ma.getdata(masked_array)
# get the mean
masked_mean = [row[row!=-1].mean() for row in d]
我在三层中屏蔽了数组数据(从 NetCDF
文件访问),如下所示。我想 mean 这三层而不考虑 NaN
值(这里 -1)单元格,同时求平均值。任何建议都会有所帮助。
masked_array(
data=[[ 270, 554, -1],
[ 270, -1, 2068],
[ -1, 554, 2068],
...,
[ -1, -1, 1349],
[ 704, 1019, -1],
[ 704, 1019, 1349]],
mask=False,
fill_value=999999,
dtype=int16)
输出应该是这样的:
data=[[412],
[1169],
[1311],
...,
[1349],
[861.5],
[1536]]
使用pythonic方式:
import numpy as np
# get data from masked array
d = np.ma.getdata(masked_array)
# get the mean
masked_mean = [row[row!=-1].mean() for row in d]