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倍的速度