24 个让 Python 加速的好方法!


源 / Python与算法之美       文 / 梁云1991

一,分析代码运行时间

第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

六,使用numpy向量化进行加速

第14式,使用np.array代替list

低速方法


640?wx_fmt=png


高速方法


640?wx_fmt=png

第15式,使用np.ufunc代替math.func

低速方法


640?wx_fmt=png


高速方法


640?wx_fmt=png

第16式,使用np.where代替if

低速方法


640?wx_fmt=png

640?wx_fmt=png


高速方法


640?wx_fmt=png

七,加速你的Pandas

第17式,使用np.ufunc函数代替applymap


低速方法


24 个让 Python 加速的好方法!_第1张图片


高速方法


24 个让 Python 加速的好方法!_第2张图片


第18式,使用预分配存储代替动态扩容


低速方法


24 个让 Python 加速的好方法!_第3张图片


高速方法


24 个让 Python 加速的好方法!_第4张图片


第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补代码工具问世,支持23种语言及5种主流编辑器,程序员沸腾了

【资料】从 0 到 1 教你深度强化学习

AI引领产业变革:论文量全球第一,平均薪资40w+,全球人才缺口500w……

北大教程,400 多页智能图像视频编辑

极客程序员的最爱,全面屏科幻终端模拟器——eDEX-UI

图解NumPy,别告诉我你还看不懂!


640?wx_fmt=png

喜欢就点击“在看”吧!


你可能感兴趣的:(24 个让 Python 加速的好方法!)