24招加速你的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密集任务效率
低速法:
高速法:
文章主要参考公众号:Python与算法之美,欢迎关注。
- END -
如果看到这里,说明你喜欢这篇文章,请转发、点赞。扫描下方二维码或者微信搜索「perfect_iscas」,添加好友后即可获得10套程序员全栈课程+1000套PPT和简历模板,向我私聊「进群」二字即可进入高质量交流群。
↓扫描二维码进群↓
喜欢文章,点个在看
24招加速你的Python,超级实用!相关推荐
- python 合并 循环list_阿里巴巴鼎力推荐,Python入门至精通,24招加速你的Python
对于Python初学者想更轻松的学好Python开发,Python爬虫技术,Python数据分析,人工智能等技术,这里也给大家准备了一套Python系统教学资源,下面介绍下阿里巴巴推荐的大型Pytho ...
- python for循环加速_干货总结,24招加速你的Python代码,值得收藏
一,分析代码运行时间 第1式,测算代码运行时间 平凡方法 快捷方法(jupyter环境) 第2式,测算代码多次运行平均时间 平凡方法 快捷方法(jupyter环境) 第3式,按调用函数分析代码运行时间 ...
- 24式加速你的Python
作者 | 梁云1991 来源 Python与算法之美 一.分析代码运行时间 第1式,测算代码运行时间 平凡方法 快捷方法(jupyter环境) 第2式,测算代码多次运行平均时间 平凡方法 快捷方法(j ...
- 24 式加速你的 Python
一,分析代码运行时间 第1式,测算代码运行时间 平凡方法 快捷方法(jupyter环境) 第2式,测算代码多次运行平均时间 平凡方法 快捷方法(jupyter环境) 第3式,按调用函数分析代码运行时间 ...
- 教你降龙24掌加速你的Python代码
一,分析代码运行时间 第1式,测算代码运行时间 平凡方法 快捷方法(jupyter环境) 第2式,测算代码多次运行平均时间 平凡方法 快捷方法(jupyter环境) 第3式,按调用函数分析代码运行时间 ...
- python程序员怎么建议_资深程序员对Python新手的八个建议,超级实用!
1. 项目文件事先做好归档 每次开始一个新工作的时候,以前的我总是贪图方便,Code.Data.文档都集中放在一个文件夹内,看起来很乱,一度让回溯过程十分痛苦,或者是换了部电脑,文件全都运行不行了,需 ...
- 加速你的Python
当你寻找这种问题的时候,很开心,你的代码水平以及对python的各种数据类型的认知会上升一个台阶! 我是什么时候开始思考这种问题的呢?当然是有一天发现模型跑数据的时候,程序一直在运行但却一直不出最终结 ...
- python实用大全pdf_超级实用干货|九大技巧,带你用Python玩转PDF
原标题:超级实用干货|九大技巧,带你用Python玩转PDF 尽管PDF最开始是由Adobe发明的,但它现在已经成为国际标准组织ISO维护的公开标准了.大家可以在Python中通过PyPDF2包来处理 ...
- [转载]极速狂飚 Windows 2003系统25招加速大法
极速狂飚 Windows 2003系统25招加速大法 现在微软最新的正式版操作系统是Win Server 2003.尽管它是对应服务器的,仍然有不少朋友蠢蠢欲动,升之而后快.可是,安装之后你就会发现麻 ...
最新文章
- 关于微信小程序的的总结
- php查询mysql表里的数据_3.php查询mysql数据表所有记录
- spi flash驱动
- linux修改组的选项名字为,Linux用户、组及权限管理浅析
- leetcode113. 路径总和 II
- 算法设计与分析 上机题Mergesort
- 多线程编程-之并发编程:同步容器
- PHP Sessions
- 小程序和android毕设,微信小程序毕设论文(完整)
- 联想微型计算机设置从u盘启动,联想台式机设置从u盘启动图文教程
- ZOJ - 3880 Demacia of the Ancients
- 计算机毕业设计asp.net193酒店客房预订网站系统
- LeetCode 781 森林中的兔子 题解
- document和document.documentElement的区别
- bzoj 4484 [Jsoi2015]最小表示——bitset
- 中国智能互动纺织品市场趋势报告、技术动态创新及市场预测
- 详细讲解vc 6.0进行DDK驱动开发【原创】
- 为什么企业选择局域网即时通讯软件?局域网即时通讯软件哪家好?
- 【每天学习一点新知识】Windows日志分析
- mongodb中的read concern和write concern