python优化for循环速度,为什么向量化比for循环快
本文主要介绍python向量化和for循环的耗时对比分析,具有很好的参考价值。希望对你有帮助。如有错误或不足之处,请不吝赐教。
00-1010矢量化和for循环之间的耗时比较矢量化数据与for循环相比的优势
目录
在深度学习中,可以用向量化代替for循环来优化耗时的问题。
比较套路如下,参考Andrew NG的课程笔记。
导入时间
将numpy作为np导入
a=np.random .兰德(1000000)
b=np.random.rand(100000)
tic=time.time()
c=np.dot(a,b)
toc=time.time()
打印(c)
print(矢量化版本: ,str(1000*(toc-tic)) ms )
c=0
tic1=time.time()
对于I,范围为(1000000):
c=a[i]*b[i]
toc1=time.time()
打印(c)
print(For循环版本: ,str(1000*(toc1-tic1)) ms )
处理数百万条数据需要400多次。
效果图:
向量化与for循环耗时对比
例子
将numpy作为np导入
导入时间
a=np.random .兰德(1000000)
b=np.random.rand(100000)
tic=time.time()
c=np.dot(a,b)
toc=time.time()
打印
print("矢量化版本:" str((toc-tic)) "s ")
c1=0
tic=time.time()
对于范围(1000000):内的I
c1=a[i]*b[i]
toc=time.time()
打印(c1)
print("非结构化版本:" str(toc-tic) "s ")
结果
250487.97870397285
矢量化版本38860 . 48686868661
250487.9787039739
未变型的版本36860 . 88868686861
可以看出,矢量化后的执行时间比使用for循环时快478倍。
以上个人经验,希望给你一个参考,也希望你能支持盛行的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。