云哥前期从以下九个方面讨论了加速Python的具体方法,一共24个,每个都带有优化前后的对比,非常实用。

  1. 分析代码运行时间

  2. 加速查找

  3. 加速循环

  4. 加速函数

  5. 实用标准库加速

  6. Numpy向量化加速

  7. 加速Pandas

  8. Dask加速

  9. 多线程多进程加速

我在此基础上主要美化了编辑,方便读者更容易阅读学习。

一 、分析代码运行时间

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,超级实用!相关推荐

  1. python 合并 循环list_阿里巴巴鼎力推荐,Python入门至精通,24招加速你的Python

    对于Python初学者想更轻松的学好Python开发,Python爬虫技术,Python数据分析,人工智能等技术,这里也给大家准备了一套Python系统教学资源,下面介绍下阿里巴巴推荐的大型Pytho ...

  2. python for循环加速_干货总结,24招加速你的Python代码,值得收藏

    一,分析代码运行时间 第1式,测算代码运行时间 平凡方法 快捷方法(jupyter环境) 第2式,测算代码多次运行平均时间 平凡方法 快捷方法(jupyter环境) 第3式,按调用函数分析代码运行时间 ...

  3. 24式加速你的Python

    作者 | 梁云1991 来源 Python与算法之美 一.分析代码运行时间 第1式,测算代码运行时间 平凡方法 快捷方法(jupyter环境) 第2式,测算代码多次运行平均时间 平凡方法 快捷方法(j ...

  4. 24 式加速你的 Python

    一,分析代码运行时间 第1式,测算代码运行时间 平凡方法 快捷方法(jupyter环境) 第2式,测算代码多次运行平均时间 平凡方法 快捷方法(jupyter环境) 第3式,按调用函数分析代码运行时间 ...

  5. 教你降龙24掌加速你的Python代码

    一,分析代码运行时间 第1式,测算代码运行时间 平凡方法 快捷方法(jupyter环境) 第2式,测算代码多次运行平均时间 平凡方法 快捷方法(jupyter环境) 第3式,按调用函数分析代码运行时间 ...

  6. python程序员怎么建议_资深程序员对Python新手的八个建议,超级实用!

    1. 项目文件事先做好归档 每次开始一个新工作的时候,以前的我总是贪图方便,Code.Data.文档都集中放在一个文件夹内,看起来很乱,一度让回溯过程十分痛苦,或者是换了部电脑,文件全都运行不行了,需 ...

  7. 加速你的Python

    当你寻找这种问题的时候,很开心,你的代码水平以及对python的各种数据类型的认知会上升一个台阶! 我是什么时候开始思考这种问题的呢?当然是有一天发现模型跑数据的时候,程序一直在运行但却一直不出最终结 ...

  8. python实用大全pdf_超级实用干货|九大技巧,带你用Python玩转PDF

    原标题:超级实用干货|九大技巧,带你用Python玩转PDF 尽管PDF最开始是由Adobe发明的,但它现在已经成为国际标准组织ISO维护的公开标准了.大家可以在Python中通过PyPDF2包来处理 ...

  9. [转载]极速狂飚 Windows 2003系统25招加速大法

    极速狂飚 Windows 2003系统25招加速大法 现在微软最新的正式版操作系统是Win Server 2003.尽管它是对应服务器的,仍然有不少朋友蠢蠢欲动,升之而后快.可是,安装之后你就会发现麻 ...

最新文章

  1. 关于微信小程序的的总结
  2. php查询mysql表里的数据_3.php查询mysql数据表所有记录
  3. spi flash驱动
  4. linux修改组的选项名字为,Linux用户、组及权限管理浅析
  5. leetcode113. 路径总和 II
  6. 算法设计与分析 上机题Mergesort
  7. 多线程编程-之并发编程:同步容器
  8. PHP Sessions
  9. 小程序和android毕设,微信小程序毕设论文(完整)
  10. 联想微型计算机设置从u盘启动,联想台式机设置从u盘启动图文教程
  11. ZOJ - 3880 Demacia of the Ancients
  12. 计算机毕业设计asp.net193酒店客房预订网站系统
  13. LeetCode 781 森林中的兔子 题解
  14. document和document.documentElement的区别
  15. bzoj 4484 [Jsoi2015]最小表示——bitset
  16. 中国智能互动纺织品市场趋势报告、技术动态创新及市场预测
  17. 详细讲解vc 6.0进行DDK驱动开发【原创】
  18. 为什么企业选择局域网即时通讯软件?局域网即时通讯软件哪家好?
  19. 【每天学习一点新知识】Windows日志分析
  20. mongodb中的read concern和write concern

热门文章

  1. 算法基础知识科普:8大搜索算法之红黑树(上)
  2. 【C++】用类来处理排序问题
  3. 太好玩了,爬虫、部署API、加小程序,一条龙玩转知乎热榜!
  4. 英特尔王锐:软硬件并驾齐驱,开发者是真英雄
  5. 免费技术直播:唐宇迪带你一节课了解机器学习经典算法
  6. 重磅!CSDN 发布「AI开源贡献奖Top5」「AI新锐公司奖Top10」「AI优秀案例奖Top30」三大榜单...
  7. 即学即用的30段Python实用代码
  8. 300道Python面试题,备战春招!
  9. 中国人口将迎来负增长,这是旷视们的机会
  10. 4月机器学习热文出炉,这10篇文章你读了吗?