学会这6招,让你的Python 嗖嗖嗖的快!

利用python3完成移动嗖嗖 使用Python完成移动嗖嗖小项目@秋莹* 这是我学python第三个星期写的一个小项目,代码看起来很繁冗(主要是链接数据库然后对数据库增删改查的代码多了一点,对于数据库的操作我觉得应该另外写一个.py文件)。希望大家谅解一哈 阅读详情

公众号关注 “菜鸟学Python”

设为 “星标”,带你挖掘更多Python干货!

对于Python编程,大家想必都或多或少的掌握了不少知识点,但是python为人所诟病的一大缺点是其运行速度比较慢。

其中一大主要的原因是Python是动态的,解释性的语言,而非静态的语言。而这就意味着Python解释器在执行程序时,并不知道变量的具体类型。

例如C++程序中,int a = 0;那么在程序的运行过程中,C++解释器始终知道变量a是一个int类型,而在Python中,编程语言变为a = 0。则Python解释器必须检查每个变量的PyObject_HEAD属性才能确定变量类型,例如:

所以对于Python编程的每一步都会有更多的步骤进行支撑,因此Python的程序执行都比较慢。那么,我们该如何提升我们的Python运行速度呢,今天小编就为大家介绍一下加速Python程序的几大方法。

在后面的程序效率对比上,我们以下面的python程序作为基础对比程序。

01.优化编写的代码

对于Python程序,大家可以首先将程序的目的实现,然后在这个基础之上,分析程序执行效率低下的部分并实现优化,然后不断的执行这个分析效率-优化的步骤。对于效率低下的操作,可以采用Python的内置高阶函数等方式进行加速,如下图所示:

上图程序中,我们分别使用for循环函数和Python内置高阶map函数实现了列表中元素的平方,结果显示,使用map函数,速度是原先的1.12倍。

02.Cython

Cython的语法同Python的语法类似,cython通过编写可以被python调用的C扩展,是其既具备了Python的语法特点,同时又有了像C语言一样的程序运行速度,此外,Cython还可以方便的调用C的包。下图给出的程序,展示的是利用cython进行开发时在运行速度上相较于Python的提升。

上图可以看出,通过cython,虽然程序上没有区别,但是在运行速度上cython提升了1.5倍左右。

03.使用多线程

在进程执行当中,可以有多个线程同时进行执行,但是每个线程可以执行不同的任务,对于多线程,这里不做过多的解释,我们直接用一个简单的程序来展示多线程。

上述的程序中,我们使用多线程来实现我们的Pow_2函数,可以看到多线程同样起到了加速Python程序执行,这里还需注意一点是我们使用多线程往一个公共的pow_list中添加数据,由于这是我们期望的,所以不需要添加线程锁来进行保护。

04.使用numba库

对于numba,官网对它本身的定义为“python的解释器”。对于numba库的详尽解释,这里小编给大家一个纽约大学的网站,大家可以通过这个网站的讲解,对numba有更加全面的了解(https://nyu-cds.github.io/python-numba/)

对于numba库的简单方法,最简单的是在函数定义的前面加上@jit装饰器。

上述程序中,我们在Pow_2函数前加上了jit装饰器,运行结果显示,其运行速度是基础方法的2.34倍左右,大大的缩短了程序的执行时间。

05.使用多进程

对于Python的多进程,Python内置了多进程包multiprocessing,我们只需要定义一个函数,便可以借助multiprocessing包,轻松的实现从单进程到并发执行的转换。

上述程序中,我们创建了4个进程,并实现了将数组元素进行平方的功能,从结果可以看出,多进程实现了真正的并行,使得程序的运行时间大大缩短,运行速度达到了基础程序的3.05倍。

06.尽可能使用numpy、pandas等科学计算库

使用科学计算库不仅可以帮助我们简化代码,提升代码可读性,而且其高效的数据处理效率可以大大提升我们的程序执行速度。

上图中,我们使用numpy来完成相同的效果,即对列表中的每个元素都实行平方。这里我们先将原始的列表origin_list转化numpy的数组,然后直接对数组进行平方。

注意这样的操作对于列表对象来说是不合法的。从上面的程序来看,使用numpy既大大简化了程序,而且也大大的提升了程序的执行效率,提高了65倍啊!对于数据处理来说,是非常友好的。


上述的几个Python运行效率提升的方法中,既有从程序本身入手进行提升,也有利用进程、线程技术和python+C的方法进行实现。大家可以在以后的程序编写中,在需要提升运行效率的时候,参考这几种方式,提升自己python程序的运行效率。

近期八大热门:

发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片!
盗墓热再起!我爬取了6万条《重启之极海听雷》的评论,发现了这些秘密
用Python一键生成炫酷九宫格图片,火了朋友圈
菜鸟也疯狂!8分钟用Python做一个酷炫的家庭随手记
Github获8300星!用Python开发的一个命令行的网易云音乐
一道Python面试题,硬是没憋出来,最后憋出一身汗!卧槽!Pdf转Word用Python轻松搞定!教你6招,不错的Python代码技巧!
程序员GitHub,现已正式上线!
接下来我们将会在该公众号上,为大家分享GitHub上优质的开源神器,程序员圈的趣事,坚持每天一篇原创文章的输出,感兴趣的小伙伴可以关注一下哈!

点这里,领取新手福利 

pycharm从安装到全副武装,学起来才嗖嗖的快,图片超多,因为过度详细! 文章目录一。pycharm下载安装二。python下载安装三.pycharm上配置python 一。pycharm下载安装 pycharm下载地址: http://www.jetbrains.com/pycharm/download/#section=windows 下载详细步骤: 1- 2- 3- 4- 5- 6 7- 8-直接finish 二。python下载安装 9-python官网: https://www.python.org/ 进去网址后点击: 10 11-下载好后 12 阅读详情

相关推荐

我用两个月时间,终于把优快云付费资源项目玩明白了!

关于项目的定位,这是一个知识付费项目,根据市场研究机构的数据显示,到2023年,全球知识付费市场规模将达到2000亿美元,所以说知识付费的前景是十分广阔的,当下互联网时代信息大爆炸,80后、90后、00后群体对知识付费的认可度也大幅提升,同时这群作为知识付费的主流人群已经具备了更强的消费能力,而且对于知识付费的需求更高。目前整个知识付费领域仍然在发展起步的初期,尽快在知识付费领域布局可以帮助我们在这波红利中获得一份不错的收益。而且个人认为,

白话机器学习 2万+

python for 加速_学会这6招,让你的Python 嗖嗖嗖的快!

对于Python编程,大家想必都或多或少的掌握了不少知识点,但是python为人所诟病的一大缺点是其运行速度比较慢。其中一大主要的原因是 Python是动态的,解释性的语言,而非静态的语言。而这就意味着Python解释器在执行程序时,并不知道变量的具体类型。例如C++程序中,int a = 0;那么在程序的运行过程中,C++解释器始终知道变量a是一个int类型,而在Python中,编程语言变为a ...

weixin_39836063的博客 465

STRING数据库的蛋白质相互作用(PPI)网络分析

在转录调控相关的文献中,我们经常能够看到这样的蛋白质相互作用网络(protein protein interaction network,PPI network)。具体而言,这些相关的文献中首先通过RNA-seq、表达谱芯片或者蛋白质组分析等,找到了在不同分组样本间一系列的差异表达基因或蛋白。

weixin_43029125的博客 9458

python珠穆朗玛峰问题_学会这6招,让你的Python 嗖嗖嗖的快!

在后面的程序效率对比上,我们以下面的python程序作为基础对比程序。01.优化编写的代码对于 Python程序,大家可以首先将程序的目的实现,然后在这个基础之上,分析程序执行效率低下的部分并实现优化,然后不断的执行这个分析效率-优化的步骤。对于效率低下的操作,可以采用 Python的内置高阶函数等方式进行加速,如下图所示:上图程序中,我们分别使用for循环函数和 Python内置高阶map函数实...

weixin_39583162的博客 933

Ansys Zemax | 利用OpticStudio实现衍射光学元件(DOE)与超透镜(metalens)的高效建模与验证

本文详细介绍了如何利用Ansys Zemax的OpticStudio软件实现衍射光学元件(DOE)与超透镜(metalens)的高效建模与验证。通过混合建模策略、相位面等效建模法、POP与FDTD联合验证等多种方法,帮助工程师快速解决跨尺度仿真难题,提升设计效率与精度。文章还分享了实战案例与高级技巧,适用于AR、医疗内窥镜等应用场景。

weixin_29268331的博客 501

mot_challenge官方评估代码

mot_challenge官方代码使用介绍 评估mot17验证集:每个视频序列的后一半帧作为验证集 下载源码:git clone https://hub.fastgit.org/JonathonLuiten/TrackEval.git 官网上下载data样例,放在TrackEval/下,结构如下: data |-- gt | |-- bdd100k | |-- davis | |-- kitti | |-- mot_challenge | | |-- MOT15-train |

qq_37866436的博客 4896

python pow和**_学会这6招,让你的Python 嗖嗖嗖的快!

公众号关注“菜鸟学Python”设为 “星标”,带你挖掘更多Python干货!对于Python编程,大家想必都或多或少的掌握了不少知识点,但是python为人所诟病的一大缺点是其运行速度比较慢。其中一大主要的原因是Python是动态的,解释性的语言,而非静态的语言。而这就意味着Python解释器在执行程序时,并不知道变量的具体类型。例如C++程序中,int a = 0;那么在程序的运行...

weixin_39718006的博客 137

Part03 数据结构

本文介绍了CSP-S初赛中常见的高级数据结构及其实现,包括: 线性结构:双端栈、双端队列、单调队列、优先队列和ST表,重点分析了它们的特点、时间复杂度及典型应用场景。 集合与森林:并查集(带路径压缩和按秩合并)和树的孩子兄弟表示法,展示了多叉树转化为二叉树存储的方法。 特殊树结构:包括二叉堆、树状数组、线段树和字典树,详细说明了它们的构建、查询和更新操作,特别强调了线段树的递归实现和字典树的前缀匹配特性。 每种数据结构都配有核心C++代码实现,涉及数组模拟、动态规划和树形结构等编程技巧,适合算法竞赛选手快速

weixin_43863957的博客 1181

python 还原九宫格图片_学会这6招,让你的Python 嗖嗖嗖的快!

公众号关注“菜鸟学Python”设为 “星标”,带你挖掘更多Python干货!对于Python编程,大家想必都或多或少的掌握了不少知识点,但是python为人所诟病的一大缺点是其运行速度比较慢。其中一大主要的原因是Python是动态的,解释性的语言,而非静态的语言。而这就意味着Python解释器在执行程序时,并不知道变量的具体类型。例如C++程序中,int a = 0;那么在程序的运行...

weixin_39808877的博客 314

AI气象预报:数值模式融合与短临预警的工程实践

气象预报正经历从物理推演到数据驱动的认知范式转变。AI气象预报并非替代传统数值模式,而是通过数值模式融合弥补其在参数化误差、初值敏感性和计算效率上的固有瓶颈。其技术价值在于提升短临预警时效性与空间精度,支撑航空调度、电力调控、防洪应急等关键场景。实践中需兼顾物理一致性、可解释性与业务系统兼容性,避免纯黑箱建模带来的外推失效与不确定性缺失风险。本文聚焦AI作为超分辨率引擎、误差矫正器和短临加速器的三类落地路径,解析HEALPix投影、多尺度图建模、轻量级U-Net等核心适配方法。

weixin_28221501的博客 300

MySQL 一一 MySQL基本使用

1、数据库 简单来说,所谓的数据库就是存储数据的容器,而且是永久存储的。 2、为什么需要数据库 3、为什么要学习MySQL数据库 最早MySQL数据,瑞典AB公司开发的一款开源型的关系型数据库。 随着时间的推移,瑞典AB公司把MySQL数据库转让给Sun公司(Java语言的创始公司) 后来,Sun公司经营不善,又把MySQL数据库转让给甲骨文公司(Oracle数据库) 4、数

Guizy 7万+

pycharm从安装到全副武装,学起来才嗖嗖的快,图片超多,因为过度详细!_ charmw2583

请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。跟前面给pip添加环境变量一样操作,只是路径不一样)如果需要下载别的插件,你可以百度搜一下pycharm有哪些好的插件,都是安装上述方式安装。推荐使用:TabNine,当然kite也不错,你可以都安装,我是都在用。首先个人不建议汉化,最后我再演示汉化插件。我是想要推荐一些不错的插件。重启软件后,随便装一个模块,如下:(你可以看到下载模块速度很快!随便取个名字(我取的学习),直接点击create.一共有三种镜像源配置,建议你每一种都跟我一起学会。

2401_84562041的博客 608

GEE:基于MODIS数据计算NDVI时间序列,并使用Savatsky-Golay(SG)滤波器对其进行平滑处理

优快云@_养乐多_本文将介绍如何在 Google Earth Engine (GEE) 平台中,使用 MODIS 数据计算 NDVI 时间序列,并对该数据集应用 Savitzky-Golay 滤波器,得到了一个新的平滑后的数据集。Savitzky-Golay 滤波器可以有效地去除信号中的噪声,并平滑信号的变化。该方法可以扩展到基于 MODIS 数据计算的任何指数或者波段。

养乐多的博客 1426

python 端口扫描 东京_嗖嗖嗖!在Python中进行批量端口扫描 | 网络安全

在上一篇文章《Python网络安全基础:一、编写一个简单的端口扫描器》中,我们介绍了端口扫描的作用,并使用Python编写了一个简单的端口识别扫描器。那个端口识别扫描器实在是过于简单,所以在本篇文章中,我们来完善一下它。本篇文章所使用的靶机还是来自于metasploitable2虚拟机,没有下载安装的小伙伴可以提前下载安装好。一、端口与端口范围在上一篇我们知道,计算机上的每一个服务都有对应的端口...

weixin_35607383的博客 357

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

手把手教你进行pip换源,让你的Python库下载嗖嗖的

点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤无可奈何花落去,似曾相识燕归来。/1 ...

pdcfighting的博客 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【新手必看】PyCharm2023免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!

有了它才能叫Python开发!

极客小俊 9623

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

python怎么换源_手把手教你进行pip换源,让你的Python库下载嗖嗖的

/1 前言/今天我们来说说python的pip换源吧,这个换源,相对来说,还是比较重要的,能让自己少生好几次气的,哈哈哈!/2 为什么要换源/我们搞python的,肯定离不开各种各样的第三方包,比如爬虫,有requests,xpath,爬虫界的扛把子Scrapy;Web有django,flask,restframework啥的,还是挺多的,我们一般安装的方式都是pip install xx模块,但...

weixin_32211243的博客 1805

手把手教你进行pip换源,让你的Python库下载嗖嗖的(系列二)

点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤无可奈何花落去,似曾相识燕归来。/1 ...

pdcfighting的博客 588

python手机库怎么下载_手把手教你进行pip换源,让你的Python库下载嗖嗖的

但是造成这种原因是什么呢,就是因为我们获取的包,默认是直接从pypi官网获取的,因为pypi国外的,本来网速就慢,再加上我们国家会限制一些国外不正常的网站,可能会存在误杀,所以,我们直接从pypi官网获取包的时候,难免会各种凉,尤其是大一点的包,更凉但是呢,我们不用担心,我们国家不缺少热血青年,总有一些大佬为我们开路,让我们少踩点坑,虽然官网的pypi慢,但是大佬们为了照顾我们的情绪,专门开发了国...

weixin_35559202的博客 500

别只盯 Python!Rust 才是 AI“跑稳、跑快、省内存” 的关键

Rust 是 Python 外的 AI 工具,核心优势为稳、快、省,补位 Python;接着讲其 AI 核心应用:推理工具(Tract、ONNX Runtime 等适配不同场景)、成长中的训练工具(Burn 等)、高效数据处理工具(Polars 等),及与 Python 协作的工具(pyo3 等);还给出边缘设备装 AI、搭 LLM 后端、优化 Python 代码三个典型场景步骤;提及未来在大模型推理、边缘 AI 等方向的发展;最后总结 Rust 不替代 Python,适配不同 AI 开发需求。

北京锋通科技有限公司的技术blog 980
上一篇: 别再问我怎么Python打包成exe了!
下一篇: PyTorch最佳实践,教你写出一手风格优美的代码
菜鸟学Python
博客等级 码龄9年 8089粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值