Я нашел ответ ниже о реализации max-pooling с 'numpy' и 'block_reduce' лыжного мага. Но это не показывает, как получить индекс максимального значения (предпочтительно относительно фактической матрицы, а не объединенной). Какое вычислительно быстрое решение для этого?
import numpy as np
import skimage.measure
a = np.array([
[ 20, 200, -5, 23],
[ -13, 134, 119, 100],
[ 120, 32, 49, 25],
[-120, 12, 9, 23]
])
skimage.measure.block_reduce(a, (2,2), np.max)