我有一个数据集dod
,我想取dod
中值的平均值。在dod
中有填充值,值为-9.99
,值为0
。我想在取平均值时忽略这些值。你知道吗
到目前为止,我只能忽略填充值:
dod = f.variables['dod_modis_flg1'][i]
def nan_if(arr, value):
return np.where(arr == value, np.nan, arr)
mean = np.nanmean([nan_if(dod, -9.99)])
print(mean)
有人知道我在取平均值的时候,怎么也可以忽略0
的值吗?你知道吗
这应该管用。您可以在一行中完成这一切—为了清楚起见,我只创建
new_array
变量:注:要求numpy>;=1.13
您可以用
nan
替换不需要的值,但这将更改原始数组:需要分配三个额外的布尔数组来执行该操作,但不会创建额外的浮点数组。你知道吗
或者只选择所需的值并取平均值:
但这将额外创建一个中间浮点数组
第三个选项是创建一个屏蔽数组,如:
它只创建额外的布尔数组,而不创建中间浮点数组:
结论
相关问题 更多 >
编程相关推荐