24式加速你的Python

640?wx_fmt=jpeg


作者 | 梁云1991

来源 Python与算法之美


一、分析代码运行时间


第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

(*本文为 AI科技大本营转载文章,转 载请 联系原作者)

精彩推荐


2019 中国大数据技术大会(BDTC)历经十一载,再度火热来袭! 豪华主席阵容及百位技术专家齐聚,15 场精选专题技术和行业论坛,超强干货+技术剖析+行业实践立体解读,深入解析热门技术在行业中的实践落地。 【早鸟票】【特惠学生票】 限时抢购,扫码了解详情!

640?wx_fmt=png


推荐阅读

640?wx_fmt=png

你点的每个“在看”,我都认真当成了喜欢

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值