我有12个.grd文件保存在同一路径中,都是二维数组格式。你知道吗
为了平均它们的值,我使用了简单的循环方法
ave_value = np.zeros_like(test_array) # generate a zero-array firstly
for i in range(0,12,1):
file_path = %(i+1)+'.grd' #1.grd, 2.grd,...
# read_grd is an user-defined function
value, nodata_value = read_grd(file_path)
value[value == nodata_value] = np.nan
ave_value_+=value
ave_value = ave_value/12.0
但是,我发现这个功能没有考虑到位置包含一些np.nan公司价值观。你知道吗
例如,一个网格文件中的位置[2,2]为np.nan公司,但在其他数据集中有某些值。然而,在上述平均过程中,导出的平均值中的平均值也是np.nan公司. 你知道吗
有没有更好的解决办法来平均不同的二维阵列关于np.nan公司值,即如果特定位置的值np.nan公司在3个文件中,我们只取其他9个文件中相应值的平均值。你知道吗
如有任何意见或建议,将不胜感激。你知道吗
您可以使用
np.nanmean()
:https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.nanmean.html对于二维数组(或n维数组),可以使用
axis
关键字来指定如何计算平均值。你知道吗相关问题 更多 >
编程相关推荐