Векторные вычисления, выполняемые над numpy-массивами выполняются быстрее, чем такие же поэлементные операции над списками. Например, умножить поэлементно два массива получается быстрее, чем два списка аналогичного размера. При этом разница тем ощутимее, чем больше размер и размерность массивов.
Написал программу, которая иллюстрирует это. Программа строит два графика. На первом графике изображена зависимость времени перемножения двух списков от их размеров, а на втором двух numpy-массивов с размерами в таком же диапазоне. При этом оба графика содержат вычисления для одномерных(!), двумерных(!) и трехмерных(!) объектов (то есть по три набора данных на каждом графике). Поскольку время, затраченное на вычисления - это случайная величина, которая может зависеть от внешних условий, значение для каждой точки вычислено несколько раз и усреднено, а разброс показан барами ошибок. После того, как данные получены, каждая зависимость аппроксимируется многочленом.