Почему numpy. массив настолько медленный?

Я сбит с толку этим

def main():
    for i in xrange(2560000):
        a = [0.0, 0.0, 0.0]

main()

$ time python test.py

real     0m0.793s

Давайте теперь посмотрим с numpy:

import numpy

def main():
    for i in xrange(2560000):
        a = numpy.array([0.0, 0.0, 0.0])

main()

$ time python test.py

real    0m39.338s

Святые циклы ЦП, бэтмен!

Использование numpy.zeros (3 ) улучшается, но все еще недостаточно IMHO

$ time python test.py

real    0m5.610s
user    0m5.449s
sys 0m0.070s

numpy.version.version = '1.5.1'

Если вам интересно, пропускается ли создание списка для оптимизации в первом примере, это не так:

  5          19 LOAD_CONST               2 (0.0)
             22 LOAD_CONST               2 (0.0)
             25 LOAD_CONST               2 (0.0)
             28 BUILD_LIST               3
             31 STORE_FAST               1 (a)
19
задан Stefano Borini 2 July 2011 в 20:34
поделиться