点击上方“Python高校”,关注
你的技术大学
前期从以下九个方面讨论了加速Python的具体方法,一共24个,每个都带有优化前后的对比,非常实用。
分析代码运行时间
加速查找
加速循环
加速函数
实用标准库加速
Numpy向量化加速
加速Pandas
Dask加速
多线程多进程加速
我在此基础上主要美化了编辑,方便读者更容易阅读学习。
“
一 、分析代码运行时间
”
1 测算代码单次运行时间
平凡法:
快捷法(Jupyter):
2 测算代码重复执行多次平均用时
平凡法:
快捷法(Jupyter):
3 按调用函数分析代码运行时间
平凡法:
快捷法(Jupyter):
4 按行分析代码运行时间
平凡法:
快捷法(Jupyter):
“
二、加速你的查找
”
5 用set而非list进行in查找
低速法:
高速法:
6 用dict而非两个list进行匹配查找
低速法:
高速法:
“
三、加速你的循环
”
7 优先使用for循环而不是while循环
低速法:
高速法:
8 循环体中避免重复运算
低速法:
高速法:
“
四、加速你的函数
”
9、用缓存机制加速递归函数
低速法:
高速法:
10、用循环取代递归
低速法:
高速法:
11、 使用Numba加速Python函数
低速法:
高速法:
“
五、使用标准库函数进行加速
”
12、使用collections.Counter类加速计数
低速法:
高速法:
13、使用collections.ChainMap加速字典合并
低速法:
高速法:
“
六、使用numpy向量化进行加速
”
14、使用np.array代替list
低速法:
高速法:
15、使用np.ufunc代替math.func
低速法:
高速法:
16、使用np.where代替if
低速法:
高速法:
“
七、加速你的Pandas
”
低速法:
高速法:
18、避免动态改变DataFrame的行数
低速法:
高速法:
19、使用csv文件读写代替xlsx文件读写
低速法:
高速法:
20、使用pandas多进程工具pandarallel
低速法:
高速法:
“
八、使用Dask进行加速
”
21、使用dask加速dataframe
低速法:
高速法:
22、使用dask.delayed应用多进程加速
低速法:
高速法:
“
九、应用多线程多进程加速
”
23、使用多线程提升IO密集任务效率
低速法:
高速法:
24、使用多进程提升CPU密集任务效率
低速法:
高速法:
获取106页电子书
历史阅读:
Python 开发者必知的 11 个 Python GUI 库
基于TensorFlow 2.0的中文深度学习开源书来了!GitHub趋势日榜第一,斩获2K+星
Python 爬取 3000 部电影,最具人气烂片排行榜出炉!
微软官方上线了Python 教程,7个章节就把Python说通了
我给曾经暗恋的初中女同学,用Python实现了她飞机上刷抖音
被女朋友三番五次拉黑后,我用 Python 写了个“舔狗”必备神器
最全 14 张思维导图:教你构建 Python 编程的核心知识体系!
扫下方码加我微信回复:Python手册,可获取一份学习Python路线的教程
人生苦短,我选在看