Python这几个库,快到飞起
最近看到知乎有这么一个问题,有哪些Python库让你相见恨晚?
作为Python老司机来说,这样的库不要太多了,从地图绘制到算法优化、从调试工具到代码分析,python的生态里有大量的库资源可以给Pythoner使用
但是对于不太了解的python人们,总会评价说python解释性语言运行速度慢吧啦吧啦的
所以一行这里分享几个高性能Python库/框架,下次再遇到这种评价,直接就把这些库/框架怼到他脸上
1、Cython
Cython结合了Python和C的语法,可以简单的认为就是给Python加上了静态类型后的语法,用户可以使用大部分的Python语法,而不需要大幅度调整主要的程序逻辑与算法。
由于代码会直接编译为二进制程序,所以性能较Python会有极大提升
Cython会将源代码转译成C或C++语法后,自动包装上函数调用界面生成.pyd(或 .so ,因操作系统而异)后缀的二进制档,所以可当成普通的Python库。
Cython性能虽然逊于本地的C/C++库,但由于Cython语法的易用性可以缩短开发时间,同时Cython也可以用于将C/C++代码封装为Python库
定义变量可以使用关键字cdef定义变量
cdef int a = 1
定义函数可以使用关键字def、cdef、或cpdef定义函数
cdef int f(int x):return x + 1
使用关键字cdef定义的函数,会被Cython编译成C语言,所以速度较快,但无法被Python使用;只有使用def或cpdef定义的函数可以在Python中使用。
2、PyPy
PyPy是一种Python编程语言实现,因为是一种即时编译器,就是在代码执行过程中编译,所以速度要比CPython快的多
通过速度对比,PyPy平均要比CPython快4.2倍
就连Python作者吉多都说过,如果你想让代码更快一些,应该去使用PyPy
"If you want your code to run faster, you should probably just use PyPy."
-- Guido van Rossum (creator of Python)
但是要注意,只有一种情况PyPy是无法加速Python的运行
那就是代码原本运行时间就不到几秒钟,这种情况下是显现不出来PyPy的作用
3、Stackless Python
Stackless Python或称简称Stackless,是一个Python编程语言解释器,这么称呼的原因是它避免了依赖C调用栈为自己的堆栈。
Stackless Python的最突出特征是微线程,就是说一个运行的程序被分解成微线程,由语言解释器自身而非操作系统内核管理,上下文切换和任务调度纯粹在解释器内完成
微线程管理在同一个CPU核心上一个程序的不同子任务的执行,Stackless Python不移除Python的全局解释器锁, 也不使用多线程或多进程。
所以它只允许在一个共享CPU核心上的协作式多任务而非并行,最初不能获得而现在有了某种形式的抢占
像大规模多玩家在线游戏Eve Online的实现和IronPort的邮件平台都是在使用Stackless Python
4、Pyston
Pyston使用 LLVM 和现代 JIT 技术构建的 Python 实现,目标是为了获得很好的性能
具体使用可以参考它的官网 https://blog.pyston.org/
5、PeachPy
PeachPy是嵌入 Python 的 x86-64 汇编器。
它自动化了一些细节,并允许使用 Python 生成重复的汇编代码序列。
而且它还有以下这些功能:
- 元数据文件的自动生成
- 自动适应不同的调用约定和 ABIs
- 汇编编程中常规任务的自动化
- 自动分配寄存器
- 支持 x86-64 指令,最高可达 AVX-512 和 SHA
- 基于 Python 的元编程和代码生成
- 兼容 Python 2 和 Python 3,CPython 和 PyPy
最后
你知道的越多,你不知道的就越多
对于Python的性能来说,如果要说它慢,那只是没有去寻找提升Python性能的办法
如果非要说Python性能差,先把上面这5高性能Python框架拿用一下,再下定论
祝大家天天进步!!学习Python最重要的就是心态。我们在学习过程中必然会遇到很多难题,可能自己想破脑袋都无法解决。这都是正常的,千万别急着否定自己,怀疑自己。如果大家在刚开始学习中遇到困难,想找一个python学习交流环境,可以加入我们,领取学习资料,一起讨论,会节约很多时间,减少很多遇到的难题。
Python这几个库,快到飞起相关推荐
- bit是python最快的bitcoin库_新的Bitcoinpython节点比以前的Python库快100倍
3月27日,Bitcoin Cash(BCH)粉丝认识了用Python编程语言编写的新BCH完整节点. 该项目名为Bitcoinpython,是一个现代化的BCH库,其创建者声称它是速度最快的Pyth ...
- 《Python程序设计》题库(2)
侵权联系我删除: [写在这里,方便右键百度搜索!] <Python程序设计>题库 填空题 Python安装扩展库常用的是_______工具.(pip) Python标准库math中用来计算 ...
- Python全家福,这些库你认识哪些?
环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. v ...
- python爬取图片的库_16-python爬虫之Requests库爬取海量图片
Requests 是一个 Python 的 HTTP 客户端库. Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和P ...
- python超级计算机_Python高性能计算库——Numba
摘要:在计算能力为王的时代,具有高性能计算的库正在被广泛大家应用于处理大数据.例如:Numpy,本文介绍了一个新的Python库--Numba, 在计算性能方面,它比Numpy表现的更好. 最近我在观 ...
- python樱花代码_使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
今天为大家介绍几个Python"装逼"实例代码,python绘制樱花.玫瑰.圣诞树代码实例,主要使用了turtle库 Python绘制樱花代码实例 动态生成樱花 效果图(这个是动态 ...
- Python 的协程库 greenlet 和 gevent
greenlet 官方文档:https://greenlet.readthedocs.io/en/latest/ From:https://www.jianshu.com/u/3ab212f28d91 ...
- python读什么文件最快的软件_这些方法,能够让你的 Python 程序快如闪电
原标题:这些方法,能够让你的 Python 程序快如闪电 来源:机器之心 讨厌 Python 的人总是会说,他们不想用 Python 的一个重要原因是 Python 很慢.而事实上,无论使用什么编程语 ...
- python qt库,用于 Python 的高级 GUI 库(Qt 和 PyQt)(1)Unix系统 -电脑资料
Qt 工具箱是一个使用广泛的跨平台 GUI 工具箱,可用于 Windows .Linux.Mac OSX 和许多手持平台, Qt 工具箱是一个使用广泛的跨平台 GUI 工具箱,可用于Windows.L ...
- python中的urllib库_Python2/3中的urllib库
介绍urllib库在不同版本的Python中的变动,并以Python3.X讲解urllib库的相关用法. urllib库对照速查表 Python2.X Python3.X urllib urllib. ...
最新文章
- 挑战 Linux 之父认为的“不可能”:向 M1 Mac 移植 Linux
- linux shell中清理僵尸进程
- gaokao--选择开发什么项目
- shell高级(一)
- for循环的执行顺序
- Spark HistoryServer日志解析清理异常
- C++ 类和对象(二):构造函数、析构函数、拷贝构造函数、运算符重载
- 2016.3.22(关系型数据库简介,管理数据库和表)
- java 二进制文件 数据库_java从数据库中读取二进制文件并....
- 中文 lda数据预处理_英文文本挖掘预处理流程总结
- 数据洞察 | Python解读地摊——你想好摆摊去卖什么了吗?
- python File operation
- Java_学生信息管理系统——数组版——初次编写
- 风火速打印小程序分析
- 不规则图形数格子的方法_最强大脑第四季不规则数独规则介绍 数独技巧口诀带图解析...
- 微信扫一扫下载apk解决方案
- Android 集成支付宝支付
- python判断英文字母_Python判断字符串是否为字母或者数字(浮点数)的多种方法
- 从全备中恢复单库或单表,小心有坑!
- Windows8和MacOS10.9双系统安装及Mac常用软件安装--联想E49A