最近看到知乎有这么一个问题,有哪些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这几个库,快到飞起相关推荐

  1. bit是python最快的bitcoin库_新的Bitcoinpython节点比以前的Python库快100倍

    3月27日,Bitcoin Cash(BCH)粉丝认识了用Python编程语言编写的新BCH完整节点. 该项目名为Bitcoinpython,是一个现代化的BCH库,其创建者声称它是速度最快的Pyth ...

  2. 《Python程序设计》题库(2)

    侵权联系我删除: [写在这里,方便右键百度搜索!] <Python程序设计>题库 填空题 Python安装扩展库常用的是_______工具.(pip) Python标准库math中用来计算 ...

  3. Python全家福,这些库你认识哪些?

    环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. v ...

  4. python爬取图片的库_16-python爬虫之Requests库爬取海量图片

    Requests 是一个 Python 的 HTTP 客户端库. Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和P ...

  5. python超级计算机_Python高性能计算库——Numba

    摘要:在计算能力为王的时代,具有高性能计算的库正在被广泛大家应用于处理大数据.例如:Numpy,本文介绍了一个新的Python库--Numba, 在计算性能方面,它比Numpy表现的更好. 最近我在观 ...

  6. python樱花代码_使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例

    今天为大家介绍几个Python"装逼"实例代码,python绘制樱花.玫瑰.圣诞树代码实例,主要使用了turtle库 Python绘制樱花代码实例 动态生成樱花 效果图(这个是动态 ...

  7. Python 的协程库 greenlet 和 gevent

    greenlet 官方文档:https://greenlet.readthedocs.io/en/latest/ From:https://www.jianshu.com/u/3ab212f28d91 ...

  8. python读什么文件最快的软件_这些方法,能够让你的 Python 程序快如闪电

    原标题:这些方法,能够让你的 Python 程序快如闪电 来源:机器之心 讨厌 Python 的人总是会说,他们不想用 Python 的一个重要原因是 Python 很慢.而事实上,无论使用什么编程语 ...

  9. python qt库,用于 Python 的高级 GUI 库(Qt 和 PyQt)(1)Unix系统 -电脑资料

    Qt 工具箱是一个使用广泛的跨平台 GUI 工具箱,可用于 Windows .Linux.Mac OSX 和许多手持平台, Qt 工具箱是一个使用广泛的跨平台 GUI 工具箱,可用于Windows.L ...

  10. python中的urllib库_Python2/3中的urllib库

    介绍urllib库在不同版本的Python中的变动,并以Python3.X讲解urllib库的相关用法. urllib库对照速查表 Python2.X Python3.X urllib urllib. ...

最新文章

  1. 挑战 Linux 之父认为的“不可能”:向 M1 Mac 移植 Linux
  2. linux shell中清理僵尸进程
  3. gaokao--选择开发什么项目
  4. shell高级(一)
  5. for循环的执行顺序
  6. Spark HistoryServer日志解析清理异常
  7. C++ 类和对象(二):构造函数、析构函数、拷贝构造函数、运算符重载
  8. 2016.3.22(关系型数据库简介,管理数据库和表)
  9. java 二进制文件 数据库_java从数据库中读取二进制文件并....
  10. 中文 lda数据预处理_英文文本挖掘预处理流程总结
  11. 数据洞察 | Python解读地摊——你想好摆摊去卖什么了吗?
  12. python File operation
  13. Java_学生信息管理系统——数组版——初次编写
  14. 风火速打印小程序分析
  15. 不规则图形数格子的方法_最强大脑第四季不规则数独规则介绍 数独技巧口诀带图解析...
  16. 微信扫一扫下载apk解决方案
  17. Android 集成支付宝支付
  18. python判断英文字母_Python判断字符串是否为字母或者数字(浮点数)的多种方法
  19. 从全备中恢复单库或单表,小心有坑!
  20. Windows8和MacOS10.9双系统安装及Mac常用软件安装--联想E49A

热门文章

  1. uni-app 小程序添加联系客服功能
  2. 读芯术python数据处理答案_python数据处理(二)
  3. 多态(面向对象核心c++)
  4. 圣诞节到了,一起来画个圣诞树吧
  5. C++字符串结束标识
  6. 婴儿啼哭声识别方案总结
  7. 站点的监控小工具-监控宝
  8. bzoj4826 hnoi2017影魔
  9. mysql 插入重复数据_MySQL插入重复数据
  10. 【python】python运行脚本出现InsecureRequestWarning:Unverified HTTPS request is being made to host错误