Запуск кода только один раз, наблюдая за временем настенных часов, - не лучший способ измерить его скорость, потому что другие процессы могут случайно и непредсказуемо повлиять на результат.Вы должны запустить его несколько раз (чем больше, тем лучше) и взять среднее.В Python есть специальный модуль для таких целей, который называется timeit .Например, на моей машине я получаю следующие результаты:
from timeit import timeit
setup = """import numpy as np
r = list(range(1000000))"""
n = 100
print(timeit("np.mean(r)", setup=setup, number=n))
print(timeit("np.mean(np.array(r))", setup=setup, number=n))
Вывод:
4.940829735947773
4.928034849930555
Или используя соответствующий IPython magic :
import numpy as np
r = list(range(1000000))
%timeit np.mean(r)
%timeit np.mean(np.array(r))
Вывод:
49.4 ms ± 189 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
49.5 ms ± 202 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
Это означает, что время выполнения существенно не отличается.
Я использую Windows 10, Python 3.7.3 и numpy 1.16.2.