前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >24招加速你的Python,超级实用!

24招加速你的Python,超级实用!

作者头像
double
发布2019-10-08 16:42:02
6180
发布2019-10-08 16:42:02
举报
文章被收录于专栏:算法channel

云哥前期从以下九个方面讨论了加速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密集任务效率

低速法:

高速法:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 测算代码单次运行时间
  • 2 测算代码重复执行多次平均用时
  • 3 按调用函数分析代码运行时间
  • 4 按行分析代码运行时间
  • 5 用set而非list进行in查找
  • 6 用dict而非两个list进行匹配查找
  • 7 优先使用for循环而不是while循环
  • 8 循环体中避免重复运算
  • 9、用缓存机制加速递归函数
  • 10、用循环取代递归
  • 11、 使用Numba加速Python函数
  • 12、使用collections.Counter类加速计数
  • 13、使用collections.ChainMap加速字典合并
  • 14、使用np.array代替list
  • 15、使用np.ufunc代替math.func
  • 16、使用np.where代替if
  • 18、避免动态改变DataFrame的行数
  • 19、使用csv文件读写代替xlsx文件读写
    • 20、使用pandas多进程工具pandarallel
      • 21、使用dask加速dataframe
        • 22、使用dask.delayed应用多进程加速
          • 23、使用多线程提升IO密集任务效率
            • 24、使用多进程提升CPU密集任务效率
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档