2012-02-12 10 views
1

私は多くの100x100グリッドを持っていますが、効率的な方法でnumpyを使用してすべてのグリッドポイントの中央値を計算し、中央値を持つ100x100グリッドを1つ返しますか?現在、私はforループを使って各グリッドポイントを実行し、中央値を計算し、最後にそれらを1つのグリッドに結合します。私はnumpyを使ってこれを行うより良い方法があると確信しています。どんな助けもありがとう!ありがとう!効率的な2次元配列アレイ統計

答えて

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) 
+0

おかげ氏E!それは完璧な意味で、私はdstackの機能について知りませんでしたが、私はそれが好きです!! numpyが同様に75パーセンタイルを得る関数をサポートしているかどうか知っていますか?そうでない場合は、それは大丈夫です、あなたはすでに多くの手伝った! – Jonathan

+0

'np.sort(d、axis = 2)'を実行して、必要なスライスをつかんでください。 – YXD

0

はどのように多くのグリッドがありますか?

1つのオプションは、100x100xnumGridsである3D配列を作成し、3次元で中央値を計算することです。中央の

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])