Vectorization python中避免使用显式for循环

JamFF

关注

阅读 104

2022-07-18


import numpy as np

a = np.array([1, 2, 3, 4])
print(a)

import time

a = np.random.rand(1000000)
b = np.random.rand(1000000)

tic = time.time()
c = np.dot(a, b)
toc = time.time()

print(c)
print("Vectorization version:" + str(1000*(toc-tic))+"ms")

c = 0
tic = time.time()
for i in range(1000000):
c += a[i]*b[i]
toc = time.time()

print(c)
print("For loop:" + str(1000*(toc-tic))+"ms")

jupyter notebook显示结果:

249827.35477486273
Vectorization version:1.5137195587158203ms
249827.35477485287
For loop:259.1674327850342ms

用向量的运算比用for循环提高300倍的速度


精彩评论(0)

0 0 举报