Почему массив numpy занимает больше времени, чем список? - PullRequest
0 голосов
/ 20 сентября 2019

Почему numpy медленнее в этом коде?

for i in range(10000):
    array = [[0.0,] * 1024 for x in range(1024)]

0,021539204 секунд прошло (39,616,810 инструкций)

import numpy as np
for i in range(10000):
    array = np.zeros((1024,1024))

0,209111860 секунд прошло (1,067,923,180 инструкций)

1 Ответ

3 голосов
/ 20 сентября 2019

Вы работаете на той же машине?Я получаю более быстрый результат в numpy.

In [7]: %%time
   ...: import numpy as np
   ...: for i in range(10000):
   ...:     array = np.zeros((1024,1024))
   ...:
CPU times: user 3.33 s, sys: 0 ns, total: 3.33 s
Wall time: 3.32 s

In [8]: %%time
   ...: for i in range(10000):
   ...:     array = [[0.0,] * 1024 for x in range(1024)]
   ...:
CPU times: user 1min 14s, sys: 0 ns, total: 1min 14s
Wall time: 1min 14s

Этот ответ в потоке numpy против list также согласен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...