24式,加速你的Python

640?wx_fmt=jpeg


作者 | 梁云

来源 | Python与算法之美(id:Python_Ai_Road)


一、分析代码运行时间


第1式:测算代码运行时间


  • 平凡方法

640?wx_fmt=png


  • 快捷方法(jupyter环境)

640?wx_fmt=png


第2式:测算代码多次运行平均时间


  • 平凡方法

640?wx_fmt=png


  • 快捷方法(jupyter环境)

640?wx_fmt=png


第3式:按调用函数分析代码运行时间


  • 平凡方法

640?wx_fmt=png

640?wx_fmt=png


  • 快捷方法(jupyter环境)

640?wx_fmt=png


第4式:按行分析代码运行时间


  • 平凡方法

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png


  • 快捷方法(jupyter环境)

640?wx_fmt=png


二、加速你的查找


第5式:用set而非list进行查找


  • 低速方法

640?wx_fmt=png

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


第6式:用dict而非两个list进行匹配查找


  • 低速方法

640?wx_fmt=png

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


三、加速你的循环


第7式:优先使用for循环而不是while循环


  • 低速方法

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


第8式:在循环体中避免重复计算


  • 低速方法

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


四、加速你的函数


第9式:用循环机制代替递归函数


  • 低速方法

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


第10式:用缓存机制加速递归函数


  • 低速方法

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


第11式:用numba加速Python函数


  • 低速方法

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


五、使用标准库函数进行加速


第12式:使用collections.Counter加速计数


  • 低速方法

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


第13式:使用collections.ChainMap加速字典合并


  • 低速方法

640?wx_fmt=png

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


六,使用高阶函数进行加速


第14式:使用map代替推导式进行加速


  • 低速方法

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


第15式:使用filter代替推导式进行加速


  • 低速方法

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


七、使用numpy向量化进行加速


第16式:使用np.array代替list


  • 低速方法

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


第17式:使用np.ufunc代替math.func


  • 低速方法

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


第18式:使用np.where代替if


  • 低速方法

640?wx_fmt=png

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


八、加速你的Pandas


第19式:使用csv文件读写代替excel文件读写


  • 低速方法

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


第20式:使用pandas多进程工具pandarallel


  • 低速方法

640?wx_fmt=png

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


九、使用Dask进行加速


第21式:使用dask加速dataframe


  • 低速方法

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


第22式:使用dask.delayed进行加速


  • 低速方法

640?wx_fmt=png

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


十、应用多线程多进程加速


第23式:应用多线程加速IO密集型任务


  • 低速方法

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


第24式:应用多进程加速CPU密集型任务


  • 低速方法

640?wx_fmt=png


  • 高速方法

640?wx_fmt=png


(*本文仅代表作者观点,转载请联系原作者)



征稿



参与投稿,加入作者群,成为全宇宙最优秀的技术人儿~


640?wx_fmt=jpeg

推荐阅读



640?wx_fmt=png 你点的每个“在看”,我都认真当成了喜欢
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值