【真香啊】让 Python 代码起飞的 24 个神操作

大家好,我们知道 Python 加速的技巧有很多,今天我给大家总结日常工作中常用的24个Python技巧,这些技巧有利于提供日常工作效率和代码性能,喜欢本文记得点赞、收藏、关注。

【注】文末提供技术交流群

推荐文章

  • 李宏毅《机器学习》国语课程(2022)来了

  • 有人把吴恩达老师的机器学习和深度学习做成了中文版

  • 上瘾了,最近又给公司撸了一个可视化大屏(附源码)

  • 如此优雅,4款 Python 自动数据分析神器真香啊

  • 梳理半月有余,精心准备了17张知识思维导图,这次要讲清统计学

  • 年终汇总:20份可视化大屏模板,直接套用真香(文末附源码)

一、分析代码运行时间

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

平凡方法

【真香啊】让 Python 代码起飞的 24 个神操作_第1张图片

快捷方法(jupyter环境)

【真香啊】让 Python 代码起飞的 24 个神操作_第2张图片

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

平凡方法

【真香啊】让 Python 代码起飞的 24 个神操作_第3张图片

快捷方法(jupyter环境)

【真香啊】让 Python 代码起飞的 24 个神操作_第4张图片

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

平凡方法

【真香啊】让 Python 代码起飞的 24 个神操作_第5张图片

【真香啊】让 Python 代码起飞的 24 个神操作_第6张图片

快捷方法(jupyter环境)

【真香啊】让 Python 代码起飞的 24 个神操作_第7张图片

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

平凡方法

图片

【真香啊】让 Python 代码起飞的 24 个神操作_第8张图片

【真香啊】让 Python 代码起飞的 24 个神操作_第9张图片

【真香啊】让 Python 代码起飞的 24 个神操作_第10张图片

快捷方法(jupyter环境)

图片

二、加速你的查找

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

低速方法

图片

【真香啊】让 Python 代码起飞的 24 个神操作_第11张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第12张图片

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

低速方法

图片

【真香啊】让 Python 代码起飞的 24 个神操作_第13张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第14张图片

三、加速你的循环

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

低速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第15张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第16张图片

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

低速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第17张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第18张图片

四、加速你的函数

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

低速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第19张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第20张图片

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

低速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第21张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第22张图片

第11式:用numba加速Python函数

低速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第23张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第24张图片

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

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

低速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第25张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第26张图片

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

低速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第27张图片

【真香啊】让 Python 代码起飞的 24 个神操作_第28张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第29张图片

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

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

低速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第30张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第31张图片

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

低速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第32张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第33张图片

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

低速方法

图片

【真香啊】让 Python 代码起飞的 24 个神操作_第34张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第35张图片

七、加速你的Pandas

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

低速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第36张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第37张图片

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

低速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第38张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第39张图片

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

低速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第40张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第41张图片

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

低速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第42张图片

【真香啊】让 Python 代码起飞的 24 个神操作_第43张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第44张图片

八、使用Dask进行加速

第21式:使用dask加速dataframe

低速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第45张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第46张图片

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

低速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第47张图片

【真香啊】让 Python 代码起飞的 24 个神操作_第48张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第49张图片

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

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

低速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第50张图片

高速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第51张图片

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

低速方法

【真香啊】让 Python 代码起飞的 24 个神操作_第52张图片

高速方法

图片

技术交流

欢迎转载、收藏、有所收获点赞支持一下!

在这里插入图片描述

目前开通了技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

  • 方式①、发送如下图片至微信,长按识别,后台回复:加群;
  • 方式②、添加微信号:dkl88191,备注:来自CSDN
  • 方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

长按关注

你可能感兴趣的:(python,python,人工智能,开发语言)