在大数据集处理中,通过使用向量来代替for循环,从而达到加速的效果。
一个A+B的例子,演示向量加速的效果。相同的输出结果,所需要的时间远小于for循环。
ps:
numpy 是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。据说NumPy将Python相当于变成一种免费的更强大的MatLab系统。
import time
import numpy as np
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 :"+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")