У меня матрица размером 560x560, которую я хочу преобразовать в матрицу 28x28.
Поэтому я хочу разделить его на регионы размером 16х16, вычислить среднее значение для каждого из таких регионов и поместить это значение в новую матрицу.
Теперь у меня есть:
import numpy as np
oldMat = ... #I load the 560x560 matrix
newMat = np.zeros((28,28)) #Initializes the new matrix of size 28x28
for i in range(0,560, 16):
for j in range(0,560, 16): #Loops over the top left corner of each region
sum = 0
for di in range(16):
for dj in range(16): #Loops over the indices of the elements in each region
sum += oldMat[i+di, j+dj]
mean = sum/256 #Calculates the mean of the elements of each region
newMat[i][j] = mean
Есть ли более быстрый способ сделать это?(Я уверен, что есть.)