社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

24 式加速你的 Python

进击的Coder • 7 年前 • 669 次点击  

这里分享给大家一篇文章,文章里面列举了一些方法来将我们的 Python 代码提速,大家试试看。

转载来源

公众号:Python 与算法之美

“

阅读本文大概需要 3 分钟。


”

一,分析代码运行时间

第 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 密集型任务

低速方法

高速方法


推荐阅读

1

跟繁琐的命令行说拜拜!Gerapy分布式爬虫管理框架来袭!

2

跟繁琐的模型说拜拜!深度学习脚手架 ModelZoo 来袭!

3

只会用Selenium爬网页?Appium爬App了解一下

4‍‍

妈妈再也不用担心爬虫被封号了!手把手教你搭建Cookies池

崔庆才

静觅博客博主,《Python3网络爬虫开发实战》作者

隐形字

个人公众号:进击的Coder

长按识别二维码关注


好文和朋友一起看~
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/36211