向量化可以使计算速度提高300倍之多。
python 的 numpy 库中有很多内置函数,可以帮助计算向量。
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("vectorized 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")
计算结果如下
249687.709883 vectorized version:4.010677337646484ms 249687.709883 For loop:793.9901351928711ms