<font color="#FF8000">作者:梁云1991,来源: Python与算法之美</font>
一,分析代码运行时间
第1式,测算代码运行时间
平凡方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75418-1.pn…; alt=""></center>
快捷方法(jupyter环境)
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75419-2.pn…; alt=""></center>
第2式,测算代码多次运行平均时间
平凡方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75420-3.pn…; alt=""></center>
快捷方法(jupyter环境)
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75421-4.pn…; alt=""></center>
第3式,按调用函数分析代码运行时间
平凡方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75422-5.pn…; alt=""></center>
快捷方法(jupyter环境)
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75423-6.pn…; alt=""></center>
第4式,按行分析代码运行时间
平凡方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75425-7.pn…; alt=""></center>
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75426-8.pn…; alt=""></center>
快捷方法(jupyter环境)
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75427-9.pn…; alt=""></center>
二,加速你的查找
第5式,用set而非list进行查找
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75428-10.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75429-11.p…; alt=""></center>
第6式,用dict而非两个list进行匹配查找
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75430-12.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75431-13.p…; alt=""></center>
三,加速你的循环
第7式,优先使用for循环而不是while循环
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75432-14.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75433-15.p…; alt=""></center>
第8式,在循环体中避免重复计算
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75434-16.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75435-17.p…; alt=""></center>
四,加速你的函数
第9式,用循环机制代替递归函数
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75436-18.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75437-19.p…; alt=""></center>
第10式,用缓存机制加速递归函数
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75438-20.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75439-21.p…; alt=""></center>
第11式,用numba加速Python函数
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75440-22.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75441-23.p…; alt=""></center>
五,使用标准库函数进行加速
第12式,使用collections.Counter加速计数
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75442-24.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75443-25.p…; alt=""></center>
第13式,使用collections.ChainMap加速字典合并
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75444-26.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75445-27.p…; alt=""></center>
六,使用numpy向量化进行加速
第14式,使用np.array代替list
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75446-28.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75447-29.p…; alt=""></center>
第15式,使用np.ufunc代替math.func
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75448-30.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75449-31.p…; alt=""></center>
第16式,使用np.where代替if
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75450-32.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75451-33.p…; alt=""></center>
七,加速你的Pandas
第17式,使用np.ufunc函数代替applymap
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75452-34.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75453-35.p…; alt=""></center>
第18式,使用预分配存储代替动态扩容
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75454-36.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75455-37.p…; alt=""></center>
第19式,使用csv文件读写代替excel文件读写
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75456-38.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75457-39.p…; alt=""></center>
第20式,使用pandas多进程工具pandarallel
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75458-40.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75459-41.p…; alt=""></center>
八,使用Dask进行加速
第21式,使用dask加速dataframe
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75460-42.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75461-43.p…; alt=""></center>
第22式,使用dask.delayed进行加速
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75462-44.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75463-45.p…; alt=""></center>
九,应用多线程多进程加速
第23式,应用多线程加速IO密集型任务
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75464-46.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75465-47.p…; alt=""></center>
第24式,应用多进程加速CPU密集型任务
低速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75466-48.p…; alt=""></center>
高速方法
<center><img src="http://xilinx.eetrend.com/files/2019-07/wen_zhang_/100044281-75467-49.p…; alt=""></center>
文章转载自:<a href="https://mp.weixin.qq.com/s?__biz=MzIxODM4MjA5MA==&mid=2247490103&am…; id="js_name">机器学习算法与Python学习</a>