2017-12-03 5 views
0

これはシンプルですが、私はPythonには初めてです。私はnumpy.shape(時間、緯度、経度)の3D配列である緯度(180)と経度(360)と時間(6624)ごとに1つのデータポイントを持つ毎日の風速データを持っています。私はすべての風速を抽出し、ヒストグラムまたは確率密度関数をプロットできるように新しい配列またはリストに入れようとしています。これらの値のそれぞれを抽出する方法はありますか?3D(時間、緯度、経度)配列のすべての値を抽出し、リストまたは1D配列を作成します。

+0

あなたは、関数を生成するために、すべての行に緯度、時間、および時間の行列が必要であることを意味しますか? – skrubber

+0

はい、そこにすべての緯度と経度のセルに1つの値を持つ風速データの6624日で、ポイントは、特定の細胞を見て、それがどんな意味がある場合は、ヒストグラムを作成するために、6624の風速を抽出することができることです。あなたが提供できる洞察力をありがとうございます。スライスは、配列が – laff

+0

は(あなたは[こちら]見ている、あなたの3D配列の数行を提供https://docs.scipy.org/doc/numpy/user/basics.indexing.html#インデックス付き多次元配列) – skrubber

答えて

0

wind_speedjja.shapeを入力すると、(6624, 180, 360)と表示されますか?

これは効率的な答えではありません。ネストされたループで説明するために書かれています。

all_wsp = np.array([]) 
mtx = wind_speed.shape 
for idx_lat in range(mtx[1]): 
    for idx_long in range(mtx[2]): 
     lat_long_wsp = wind_speed[:, idx_lat, idx_long] 
     # do a plot on lat_long_wsp, or your histogram 
     all_wsp = np.concatenate((all_wsp, lat_long_wsp)) 
     # all_wsp will be all single values in a flattened array 

平坦配列の直後の場合は、flat_wsp = windspeed.flatten()を実行します。

+0

はい、それはwind_speedjjaの形です。 – laff

+0

そのコードはうまくいくようです。私は今、それをテストしていますが、この多くのデータポイントでは、長い時間がかかります。私は結果が得られたら更新します。ありがとう! – laff

+0

はい、このコードはうまくいきます。お手伝いありがとう! – laff

0

あなたのデータは膨大なので、まずグローバルなアプローチが必要です。おもちゃの例として

from pylab import * 

wind = rand(662,18,36) 
means = wind.mean(axis=0) 
subplot(121) 
hist(means.ravel(),100) 
subplot(122) 
imshow(means) 
colorbar() 
show() 

enter image description here

次にあなたが洗練されますどの領域を決めることができます。

関連する問題