We know that numpy is C order stored so .sum(axis=1) should be faster that .sum(axis=0). But I find that
arr = np.ones([64, 64])
arr.flags
%timeit arr.sum(axis=1) # 4.15 µs ± 97.5 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
%timeit arr.sum(axis=0) # 4.67 µs ± 188 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
But when the size change to 10000
arr = np.ones([10000, 10000]) #
arr.flags
%timeit arr.sum(axis=1) # 109 ms ± 2.51 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
%timeit arr.sum(axis=0) # 57.5 ms ± 2.49 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)