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