高效的二维numpy数组统计

时间:2012-02-12 00:51:31

标签: python numpy statistics

我有很多100x100网格,是否有一种有效的方法使用numpy计算每个网格点的中位数,并返回一个100x100网格的中值?目前,我正在使用for循环遍历每个网格点,计算中位数,然后在最后将它们组合成一个网格。我确信使用numpy有更好的方法。任何帮助,将不胜感激!谢谢!

3 个答案:

答案 0 :(得分:6)

创建为100x100xN阵列(如果不可能,则叠加在一起)并使用正确轴的np.median一次完成:

import numpy as np
a = np.random.rand(100,100)
b = np.random.rand(100,100)
c = np.random.rand(100,100)
d = np.dstack((a,b,c))
result = np.median(d,axis=2)

答案 1 :(得分:0)

有多少个网格?

一种选择是创建一个100x100xnumGrids的3D数组,并计算第三维的中位数。

答案 2 :(得分:0)

使用中位数的轴参数:

import numpy as np

data = np.random.rand(100, 5, 5)

print np.median(data, axis=0)

print np.median(data[:, 0, 0])
print np.median(data[:, 1, 0])