t-x-y
時間-緯度-経度を表す配列と、グリッドの値が任意 の測定変数を保持する場所の場合、特定の時間条件で配列のスライスをt-x-y
「グループ化」するにはどうすればよいですか?x-y
たとえば、コンパニオン配列が日時の1次元リストである場合、月が1に等しいグリッドt
の要素ごとの平均を見つけるにはどうすればよいですか。月= 1の要素が10個しかない場合、配列が必要です。ここから、グリッド全体で目的の平均値を取得するためにできることがわかります。ここで、配列操作の結果です。 x-y
t
(10, len(x), len(y))
np.mean(out, axis=0)
x-y
out
の形状t-x-y
はおおよそ(2000, 50, 50)
です。これは、さまざまな時間(50, 50)
の値のグリッドです2000
。t
一意の条件 (月または年でスライスしているかどうか) の数が、配列内の要素の総数よりも << であると仮定します。
これを達成するための最もpythonicな方法は何ですか? この操作は多くのデータセットで繰り返されるため、計算効率の高いソリューションが優先されます。私はPythonに比較的慣れていないので(テスト用のサンプル配列を作成する方法さえわかりません)、役立つ可能性のある他のモジュールを自由に推奨してください。 (Pandasも見てきたけど、主に1次元の時系列データを扱っているような…?)
編集:
これは、配列の例として私ができる最善の方法です:
>>> t = np.repeat([1,2,3,4,5,6,7,8,9,10,11,12],83)
>>> t.shape
(996,)
>>> a = np.random.randint(1,101,2490000).reshape(996, 50, 50)
>>> a.shape
(996, 50, 50)
>>> list(set(t))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
つまり、a はランダム データの配列であり、t は (たとえば) 月を表す配列であり、この場合は単純な整数です。この例では、各月に 83 のインスタンスがあります。x-y
t = 1 の場合に対応する 83のスライスをどのように分離できa
ますか (月平均データセットを作成するため)。