2D 数组列表的逐像素中位数 - numpy



我有一个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 风格"中做到这一点,最终cythonnumba来加快该过程,因为我的数组非常大,但我很确定我错过了一种简单有效的方法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.]])

最新更新