让 Python 起飞的 24 个骚操作!

170 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第10天,点击查看活动详情

Python加速的技巧有很多,这篇文章总结了24个,查缺补漏,每天学会一个新的小技巧图片

一、分析代码运行时间

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

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

二、加速你的查找

第5式:用set而非list进行查找低速方法图片图片高速方法
图片
第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

第17式:使用np.ufunc函数代替applymap低速方法图片高速方法图片第18式:使用预分配存储代替动态扩容低速方法图片高速方法图片
第19式:使用csv 文件读写代替excel文件读写低速方法
图片高速方法
图片第20式:使用pandas多进程工具pandarallel
低速方法
图片图片高速方法图片

八、使用Dask进行加速

第21式:使用dask加速dataframe

低速方法图片高速方法图片第22式:使用dask.delayed进行加速低速方法图片图片高速方法图片

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

第23式:应用多线程加速IO密集型任务低速方法图片
高速方法图片第24式:应用多进程加速CPU密集型任务低速方法图片高速方法图片

\