Как оценить сумму значений в блоках массива

У меня есть массив данных, с формой 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?

Ответы на вопрос(3)

Ваш ответ на вопрос