我有数据数组,形状为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?
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