我有一个numpy
2D ndarray
的列表,我正在尝试计算"逐像素"的中位数和列表所有 dem 的某个百分位数。基本上这些是光栅,我需要保持它们的尺寸。例如:
A = [[1,1],[2,2]]
B = [[2,2],[3,3]]
C = [[3,3],[4,4]]
我想要:
my_median = [[2,2],[3,3]]
我可以在带有 for 循环的"C 风格"中做到这一点,最终cython
或numba
来加快该过程,因为我的数组非常大,但我很确定我错过了一种简单有效的方法numpy
?
np.median(np.sum([A,B,C]))
只给我全局中位数,或者如果我玩axis
每行或每列的中位数。
提前感谢!
您可以使用
dstack
按顺序深度堆叠数组,并沿最后一个轴进行np.median
:
np.median(np.dstack([A,B,C]), -1)
array([[2., 2.],
[3., 3.]])