データ配列があり、形状は100x100です。私はそれを5x5ブロックに分割し、各ブロックには20x20グリッドがあります。私が望む各ブロックの値は、その中のすべての値の合計です。配列ブロック内の値の合計を評価する方法
これを実現するにはよりエレガントな方法がありますか?
x = np.arange(100)
y = np.arange(100)
X, Y = np.meshgrid(x, y)
Z = np.cos(X)*np.sin(Y)
Z_new = np.zeros((5, 5))
for i in range(5):
for j in range(5):
Z_new[i, j] = np.sum(Z[i*20:20+i*20, j*20:20+j*20])
これはインデックスに基づいています。
x = np.linspace(0, 1, 100)
y = np.linspace(0, 1, 100)
X, Y = np.meshgrid(x, y)
Z = np.cos(X)*np.sin(Y)
x_new = np.linspace(0, 1, 15)
y_new = np.linspace(0, 1, 15)
Z_new?
任意の数のディメンションのソリューション:http://stackoverflow.com/questions/36269508/lets-make-a-reference-implementation-of-n-dimensional-pixel-binning-bucketing-f/36269734#36269734 –
@ajcr重複したリンクされた質問には、このようなケースを解決するために必要ではない一般的なndarrayのケースを設定することにかなりのオーバーヘッドが伴うため、これを再開します。これは大丈夫だと思う。 – Divakar