2020年10款优秀的Python第三方库,看看有你中意的吗?


Posted in Python onJanuary 12, 2021

相对于numpy、TensorFlow、pandas这些已经经过多年维护、迭代,对于大多数Python开发者耳熟能详的库不同。

今天要给大家介绍的是诞生于2020年的新鲜Python库,而且,本文介绍的这10个Python库一直都受到非常好的维护。

废话不多说,下面开始本文的正式内容!

1. Typer

2020年10款优秀的Python第三方库,看看有你中意的吗?

或许,你并非经常编写 CLI 应用程序,但是当你编写时,有可能会遇到很多障碍。

继FastAPI的巨大成功之后,tiangolo用同样的原则为我们带来了Typer[1]:一个新的库,它能让你利用Python 3.6+的类型提示功能来编写命令行接口。

这个设计确实让Typer脱颖而出。除了确保你的代码是正确的文档,你还可以通过小小的改动得到一个带有验证的CLI接口。

而且通过使用类型提示,你可以在你的Python编辑器中获得自动完成(比如VSCode),这将提高你的工作效率。

为了增强它的功能,Typer在另外一款非常知名的CLI工具Click的基础之上做了很多优化和改善。这意味着它可以利用它的所有优点、社区和插件,同时以较少的模板代码开始简单的工作。

2. Rich

2020年10款优秀的Python第三方库,看看有你中意的吗?

顺着CLI的话题,在使用终端时,往往是单调的白色,这非常不利于分辨和阅读。

你想给你的终端输出添加色彩和与众不同的风格吗?打印复杂的表格?显示漂亮的进度条?Markdown?Emojis?

Rich[2]都能满足你的要求。

请看示例截图,了解一下它的功能。

3. Dear PyGui

2020年10款优秀的Python第三方库,看看有你中意的吗?

虽然,正如我们所看到的,终端应用可以很好看,但有时这还不够,你需要一个真正的GUI。

为此,Dear PyGui[3]应运而生,它是流行的Dear ImGui C++项目的Python移植。

Dear PyGui利用了在视频游戏中流行的所谓即时模式范式。

这意味着动态GUI是一帧一帧独立绘制的,不需要持久化任何数据。这使得这个工具与其他Python GUI框架有着本质上的区别。

它具有很高的性能,并使用计算机的GPU来促进高动态界面的构建,这在工程、模拟、游戏或数据科学应用中是经常需要的。

4. PrettyErrors

2020年10款优秀的Python第三方库,看看有你中意的吗?

这是一个让你觉得:"怎么以前没有人想到它?"的Python库。

PrettyErrors[4]只做了一件事,而且做得很好。

在支持彩色输出的终端中,它将混乱的报错信息转化为更适合我们人类的眼睛来解析的东西。

不再苦苦扫描整个屏幕,定位报错信息......现在你可以一目了然地找到它。

5. Diagrams

2020年10款优秀的Python第三方库,看看有你中意的吗?

我们程序员喜欢解决问题和编码。

但有时,作为非常需要的项目文档的一部分,我们需要向其他同事解释复杂的架构设计。

传统上,我们已经求助于GUI工具,我们可以在图表和可视化上下功夫,把它放在演示和文档中。

但这不是唯一的方式。

Diagrams[5]可以让你不用任何设计工具,直接在Python代码中绘制云系统架构。

只需要几行代码,就可以绘制一幅亮眼的架构图。

6. Hydra and OmegaConf

在做机器学习项目的研究和实验时,总有无数的设置需要尝试。

在一些应用中,配置管理变得非常复杂。如果有一种结构化的方式来处理这种复杂性,会极大的提高开发效率。

Hydra[6]是一个工具,它允许你以可组合的方式构建配置,并从命令行或配置文件中覆盖某些部分。

python train_model.py variation=option_a,option_b 
 
├── variation 
│   ├── option_a.yaml 
│   └── option_b.yaml 
├── base.yaml 
└── train_model.py 

另一款工具,OmegaConf[7]为分层配置系统的基础提供了一致的API,支持YAML、配置文件、对象和CLI参数等不同来源。

7. PyTorch Lightning

2020年10款优秀的Python第三方库,看看有你中意的吗?

每一个能够提高数据科学团队生产力的工具都是价值连城的。

没有理由让在数据科学项目中工作的人每次都要重新发明轮子,反复思考如何更好地组织项目中的代码,使用一些不太好维护的 "PyTorch boilerplate",或者用潜在的控制权换取使用更高级别的抽象。

Lightning[8]通过将科学与工程脱钩,有助于提高生产力。它有点像TensorFlow的Keras,在某种意义上,它使你的代码更加简洁。

然而,它并没有夺走你的控制权。它仍然是PyTorch,你可以使用所有常用的API。

这个库可以帮助团队利用软件工程的良好实践,围绕组件的组织和明确的责任,构建高质量的代码,可以轻松地扩展到多个GPU、TPU和CPU上进行训练。

这个库可以帮助数据科学团队中那些初级成员产生更好的结果,同时,更有经验的成员也会喜欢它,因为在不放弃控制权的前提下,提高了整体生产力。

8. Hummingbird

2020年10款优秀的Python第三方库,看看有你中意的吗?

不是所有的机器学习都是深度学习。很多时候,你的模型由scikit-learn中实现的比较传统的算法组成(比如随机森林),或者你使用梯度提升方法,比如流行的LightGBM和XGBoost。

然而,在深度学习领域正在发生很多变化。像PyTorch这样的框架正在以令人窒息的速度前进,硬件设备也在优化,以更快的速度和更低的功耗运行张量计算。如果我们能够利用这些工作,更快、更高效地运行我们的传统方法,岂不美哉?

这就是Hummingbird[9]的用武之地。

微软的这个新库可以将你训练好的传统ML模型编译成张量计算。

这很好,因为它可以让你摆脱重新设计模型的需要。

截至目前,Hummingbird支持转换到PyTorch、TorchScript、ONNX和TVM,以及各种ML模型和矢量器。

9. HiPlot

2020年10款优秀的Python第三方库,看看有你中意的吗?

几乎每一位数据科学家在其职业生涯的某个阶段都曾处理过高维数据。

不幸的是,人类的大脑并没有足够的能力直观地处理这种数据,所以我们必须借助其他技术。

今年年初,Facebook发布了HiPlot[10],这是一个帮助发现高维数据中的相关性和模式的库,使用平行图和其他图形方式来表示信息。在他们的发布博文中解释了这个概念,但基本上是一种很好的、方便的可视化和过滤高维数据的方法。

HiPlot是交互式的,可扩展的,你可以从你的标准Jupyter Notebooks或通过它自己的服务器使用它。

10. Scalene

2020年10款优秀的Python第三方库,看看有你中意的吗?

随着Python库的生态系统越来越复杂,我们发现自己编写了越来越多的依赖于C扩展和多线程代码的代码。

在对比性能时,这就成了一个问题,因为CPython内置的剖析工具不能正确处理多线程和本地代码。

这时,Scalene[11]就来救场了。

Scalene是一个针对Python脚本的CPU和内存剖析工具,它能够正确处理多线程代码,并区分运行Python和本地代码的时间。

你不需要修改你的代码,你只需要用scalene从命令行运行你的脚本,它就会为你生成一个文本或HTML报告,显示每行代码的CPU和内存使用情况。

结语

一款好用的工具,能够让开发者事半功倍。

对于Python这种极度依赖第三方工具包的编程语言更是如此。

因为有了这些优秀的工具,才使得Python生态得以完善和状态。

以上就是2020年10款优秀的Python第三方库,看看有你中意的吗?的详细内容,更多关于python 第三方库的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python和Perl绘制中国北京跑步地图的方法
Mar 03 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
May 16 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
Jul 11 Python
详解Python3 对象组合zip()和回退方式*zip
May 15 Python
简单了解django索引的相关知识
Jul 17 Python
python jenkins 打包构建代码的示例代码
Nov 29 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
Mar 09 Python
Python 实现自动完成A4标签排版打印功能
Apr 09 Python
PyQt5实现画布小程序
May 30 Python
python实现双人五子棋(终端版)
Dec 30 Python
Python中itertools库的四个函数介绍
Apr 06 Python
Python图像处理库PIL详细使用说明
Apr 06 Python
python3 kubernetes api的使用示例
Jan 12 #Python
python excel和yaml文件的读取封装
Jan 12 #Python
python drf各类组件的用法和作用
Jan 12 #Python
Python try except else使用详解
Jan 12 #Python
python 逆向爬虫正确调用 JAR 加密逻辑
Jan 12 #Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
Jan 12 #Python
使用sublime text3搭建Python编辑环境的实现
Jan 12 #Python
You might like
PHP利用header跳转失效的解决方法
2014/10/24 PHP
Yii中CGridView关联表搜索排序方法实例详解
2014/12/03 PHP
php程序内部post数据的方法
2015/03/31 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
浅谈php中fopen不能创建中文文件名文件的问题
2017/02/06 PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
2017/07/09 PHP
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
15个常用的jquery代码片段
2015/12/19 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
2016/04/03 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
vue动画效果实现方法示例
2019/03/18 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
[02:04]2014DOTA2国际邀请赛 BBC小组赛第三天总结
2014/07/12 DOTA
python通过加号运算符操作列表的方法
2015/07/28 Python
Python实现将数据库一键导出为Excel表格的实例
2016/12/30 Python
python 将list转成字符串,中间用符号分隔的方法
2018/10/23 Python
Django csrf 两种方法设置form的实例
2019/02/03 Python
解决python明明pip安装成功却找不到包的问题
2019/08/28 Python
python实现两个文件夹的同步
2019/08/29 Python
python对Excel的读取的示例代码
2020/02/14 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
文明风采获奖感言
2014/02/18 职场文书
领导班子群众路线与四风问题对照检查材料思想汇报
2014/10/11 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
个人诉讼委托书范本
2014/10/17 职场文书
2014年社区工会工作总结
2014/12/18 职场文书
幼儿园安全教育月活动总结
2015/05/08 职场文书
如何拟写通知正文?
2019/04/02 职场文书
golang 实现Location跳转方式
2021/05/02 Golang
记一次Mysql不走日期字段索引的原因小结
2021/10/24 MySQL
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL