Ниже я сравнивал производительность при работе с суммами операций между C-смежными и Fortran-смежными массивами (C против заказа памяти FORTRAN). Я установил axis=0
, чтобы номера были добавлены по столбцу. Я был удивлен, что Fortran-смежный массив на самом деле медленнее, чем его аналог C. Разве это не тот массив Fortran-смежности, который имеет смежное распределение памяти в столбцах и, следовательно, лучше работает в столбце?
import numpy as np
a = np.random.standard_normal((10000, 10000))
c = np.array(a, order='C')
f = np.array(a, order='F')
В ноутбуке Jupyter запустите
%timeit c.sum(axis=0)
10 loops, best of 3: 84.6 ms per loop
%timeit f.sum(axis=0)
10 loops, best of 3: 137 ms per loop