Я хотел посмотреть, что быстрее:
import numpy as np
np.sqrt(4)
-или-
from numpy import sqrt
sqrt(4)
Вот код, который я использовал, чтобы найти среднее время выполнения каждого.
def main():
import gen_funs as gf
from time import perf_counter_ns
t = 0
N = 40
for j in range(N):
tic = perf_counter_ns()
for i in range(100000):
imp2() # I ran the code with this then with imp1()
toc = perf_counter_ns()
t += (toc - tic)
t /= N
time = gf.ns2hms(t) # Converts ns to readable object
print("Ave. time to run: {:d}h {:d}m {:d}s {:d}ms" .
format(time.hours, time.minutes, time.seconds, time.milliseconds))
def imp1():
import numpy as np
np.sqrt(4)
return
def imp2():
from numpy import sqrt
sqrt(4)
return
if __name__ == "__main__":
main()
Когда я import numpy as np
затем звоню np.sqrt(4)
, я получаю среднее время около 229 мс (время запуска цикла 10 ** 4 раза).
Когда я запускаю from numpy import sqrt
, а затем звоню sqrt(4)
, я получаю среднее время, равное 332 мс .
Поскольку существует такая разница во времени, польза от запуска from numpy import sqrt
? Есть ли польза от памяти или какая-то другая причина, по которой я бы это сделал?