重複の可能性:
平均して2Dnumpy配列をグループ化
元の配列の8x8要素のブロックを平均して、形状(2880、5760)の2D配列を形状(360、720)に「ダウンサンプリング」する必要があります。NumPyを使用してそれを行う効率的な方法はどれですか?
編集 私はmasked_arraysでこれを行う必要があることに気付いたので、連鎖されたmean()は行いません。
重複の可能性:
平均して2Dnumpy配列をグループ化
元の配列の8x8要素のブロックを平均して、形状(2880、5760)の2D配列を形状(360、720)に「ダウンサンプリング」する必要があります。NumPyを使用してそれを行う効率的な方法はどれですか?
編集 私はmasked_arraysでこれを行う必要があることに気付いたので、連鎖されたmean()は行いません。
最初に2つの追加の軸を導入し、次にそれらの軸に沿って平均を取ります。あなたX
のデータは次のとおりです。
X.reshape(360, 8, 720, 8).mean(axis=3).mean(axis=1)
マスクされた配列でも機能する方法は次のとおりです
import numpy as np, numpy.random
nx = 100
ny = 101
bx = 3
by = 4
arr = np.random.uniform(size = (nx * bx, ny * by))
arr = np.ma.masked_array(arr,arr<.1)
rebinarr = np.swapaxes(arr.reshape(nx, bx, ny, by), 1, 2).reshape(nx, ny, bx * by).mean(axis=2)
print rebinarr.shape
>> (100,101)