重磅干货,第一时间送达
一,分析代码运行时间
第1式,测算代码运行时间
平凡方法
![](https://img.haomeiwen.com/i4809664/75d7bce4250bdf1c.png!web)
快捷方法(jupyter环境)
![](https://img.haomeiwen.com/i4809664/010e4a9f019bec6e.png!web)
第2式,测算代码多次运行平均时间
平凡方法
![](https://img.haomeiwen.com/i4809664/fc684666fbdfc96a.png!web)
快捷方法(jupyter环境)
![](https://img.haomeiwen.com/i4809664/d1f66b8c368c8f33.png!web)
第3式,按调用函数分析代码运行时间
平凡方法
![](https://img.haomeiwen.com/i4809664/b4f3996b9023cc37.png!web)
![](https://img.haomeiwen.com/i4809664/29adcd3a963b5cca.jpg!web)
快捷方法(jupyter环境)
![](https://img.haomeiwen.com/i4809664/991c8745c48c285d.jpg!web)
第4式,按行分析代码运行时间
平凡方法
![](https://img.haomeiwen.com/i4809664/ce446cb6d0b62db0.png!web)
![](https://img.haomeiwen.com/i4809664/a8d89e378e1329aa.png!web)
![](https://img.haomeiwen.com/i4809664/36072bff5355e8d5.png!web)
![](https://img.haomeiwen.com/i4809664/b6fa109a071f0d57.jpg!web)
快捷方法(jupyter环境)
二,加速你的查找
第5式,用set而非list进行查找
低速方法
![](https://img.haomeiwen.com/i4809664/aeabdb60f33e54a5.png!web)
![](https://img.haomeiwen.com/i4809664/5d50df17f3387986.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/92ac32287248cc6f.png!web)
第6式,用dict而非两个list进行匹配查找
低速方法
![](https://img.haomeiwen.com/i4809664/c7477f1903f661b1.png!web)
![](https://img.haomeiwen.com/i4809664/9bfff21d8f126738.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/fd014210eadf0b40.png!web)
三,加速你的循环
第7式,优先使用for循环而不是while循环
低速方法
![](https://img.haomeiwen.com/i4809664/2d5b65064d27894e.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/5a175a823c18a4af.png!web)
第8式,在循环体中避免重复计算
低速方法
![](https://img.haomeiwen.com/i4809664/0ce83c86eb2b1ce0.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/37b8fef7b28730a2.png!web)
四,加速你的函数
第9式,用循环机制代替递归函数
低速方法
![](https://img.haomeiwen.com/i4809664/977f6965d869bc36.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/e4a0c020dd8a24f2.png!web)
第10式,用缓存机制加速递归函数
低速方法
![](https://img.haomeiwen.com/i4809664/b7b258aca891c7e1.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/e484d2454e578c10.png!web)
第11式,用numba加速Python函数
低速方法
![](https://img.haomeiwen.com/i4809664/a7ecd40c0d36c47f.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/9e8c0b039beaf8fa.png!web)
五,使用标准库函数进行加速
第12式,使用collections.Counter加速计数
低速方法
![](https://img.haomeiwen.com/i4809664/c58a657e21ccc7bd.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/472634c6893d1693.png!web)
第13式,使用collections.ChainMap加速字典合并
低速方法
![](https://img.haomeiwen.com/i4809664/5c1714d2064d0e90.png!web)
![](https://img.haomeiwen.com/i4809664/81a5eba6e2ea806c.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/7b01767acffaee90.png!web)
六,使用高阶函数进行加速
第14式,使用map代替推导式进行加速
低速方法
![](https://img.haomeiwen.com/i4809664/6bb1b0965f4c5426.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/a01cefd6c1842469.png!web)
第15式,使用filter代替推导式进行加速
低速方法
![](https://img.haomeiwen.com/i4809664/46b7936ee76e5718.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/1b37679eeca91cdd.png!web)
七,使用numpy向量化进行加速
第16式,使用np.array代替list
低速方法
![](https://img.haomeiwen.com/i4809664/0f2f3d212d945108.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/015bc4bb5d28c03c.png!web)
第17式,使用np.ufunc代替math.func
低速方法
![](https://img.haomeiwen.com/i4809664/7c402316ffc9368f.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/aa779038fc5e7510.png!web)
第18式,使用np.where代替if
低速方法
![](https://img.haomeiwen.com/i4809664/a659beb6f7de343a.png!web)
![](https://img.haomeiwen.com/i4809664/0706be0a14aee35c.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/be47be8608fd75ec.png!web)
八,加速你的Pandas
第19式,使用csv文件读写代替excel文件读写
低速方法
![](https://img.haomeiwen.com/i4809664/2487109de0db1a0d.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/0572fa36f4eb4dd5.png!web)
第20式, 使用pandas多进程工具pandarallel
低速方法
![](https://img.haomeiwen.com/i4809664/c7f67d124829ba01.png!web)
![](https://img.haomeiwen.com/i4809664/0a82b06589a1b7d1.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/3601d65013612c47.png!web)
九,使用Dask进行加速
第21式,使用dask加速dataframe
低速方法
![](https://img.haomeiwen.com/i4809664/4d3e0e2bf6beae56.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/1f0b699f68a3cbfc.png!web)
第22式,使用dask.delayed进行加速
低速方法
![](https://img.haomeiwen.com/i4809664/af4c17047a838609.png!web)
![](https://img.haomeiwen.com/i4809664/1ea7bd37355cf00b.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/089554667a1be5a5.png!web)
十,应用多线程多进程加速
第23式,应用多线程加速IO密集型任务
低速方法
![](https://img.haomeiwen.com/i4809664/efb47fdd38ad47bb.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/e67423fe6458e51c.jpg!web)
第24式,应用多进程加速CPU密集型任务
低速方法
![](https://img.haomeiwen.com/i4809664/da2575fd28355894.png!web)
高速方法
![](https://img.haomeiwen.com/i4809664/4ca85a9f775e4d08.jpg!web)
专注于数据科学领域的知识分享
欢迎在文章下方留言与交流
在这推荐下小编创建的Python学习交流群835017344,可以获取Python入门基础教程,送给每一位小伙伴,这里是小白聚集地,每天还会直播和大家交流分享经验哦,欢迎初学和进阶中的小伙伴。
![]()
网友评论