二维数组列表的逐像素中位数-numpy

时间:2019-04-16 08:20:31

标签: python numpy

我有一个numpy二维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每行或每列的中位数。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用dstack沿深度顺序堆叠数组,并沿最后一个轴取np.median

np.median(np.dstack([A,B,C]), -1)

array([[2., 2.],
       [3., 3.]])