how to perform max/mean pooling on a 2d array using numpy
You could use scikit-image 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) Gives: array([[200, 119], [120, 49]])