Python含有nan值的矩阵平均问题
将1km的S1_SD重采样到3.125km时,先把1km重采样到了0.125km,再将0.125km大小的像元25×25平均到3.125
此时需要进行平均25×25的S1_SD数据中可能会含有nan值
错误:若直接用np.average,只要矩阵中有nan值,则平均值也为nan值
改正:
(1)方法一:将np.average改为np.nanmean
(2)方法二:用idx筛选出不是nan的值,再用np.average进行平均
测试代码:
import numpy as np
A = [[1, 0, np.NAN],
[np.NAN, 6, 7],
[6, np.NAN, 9]]
B = np.array(A)
idx = (~np.isnan(B))
C = np.average(B[idx])
D = np.nanmean(B)