big = np.arange(36).reshape([6, 6])
array([[0, 1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11], [12, 13, 14, 15, 16, 17],
    [18, 19, 20, 21, 22, 23], [24, 25, 26, 27, 28, 29], [30, 31, 32, 33, 34,
    35]])
small = big.reshape([Nsmall, Nbig // Nsmall, Nsmall, Nbig // Nsmall]).mean(3
    ).mean(1)
array([[3.5, 5.5, 7.5], [15.5, 17.5, 19.5], [27.5, 29.5, 31.5]])
Grouping 2D numpy array in average