Pandas использует numexpr
за кулисами
Pandas использует numexpr
под капотом, если он установлен. Это правда в моем случае. Если я использую numexpr явно, я получаю следующее.
Измерение
С numexpr.evaluate
можно вычислить «действительное» числовое выражение для numpy.ndarrays
.
import numexpr
%%timeit
numexpr.evaluate('a * a')
52.7 ms ± 398 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
Наблюдения
Время стены для оценки произведения массива с самим собой теперь плюс минус столько же, сколько требуется для pandas.
Заключение
Могут быть случаи, когда pandas быстрее, чем numpy. С другой стороны, используя numexpr
вместе с numpy, можно получить такое же ускорение. Но делать это нужно «по-своему». Кроме того, это необычный вариант использования pandas. Обычно есть фрейм данных с индексом или мультииндексом (иерархическим индексом), прикрепленным по крайней мере к одной оси. Например, необходимо изучить умножение кадров данных на не равный MultiIndex (широковещательная передача).