今天天是2020年的最后一天了,在送走多灾多难的2020之际,首先祝愿各位小伙伴新年快乐!另外,大家都开始忙于年度总结,虫虫也来给大家总结一下程序届一些总结。现在程序届最火的是什么?当然莫过于Python语言了,那我们就来总结一下2020年的Python生态圈,看看今年新生并且最流行的类库。
1Rich
开发终端命令行应用大多数人都是默认黑底白字了事,或者自己费劲拼ASCI代码。有了这个库Rich,几行代码帮你搞定颜色和样式,同时还可以制作进度条、表情,边框以及一些复杂的表格。
Rich 是一个 Python 库,可以为Python应用在终端中提供富文本和精美格式。可以很容易的在终端输出添加各种颜色和不同风格。Rich 还可以绘制漂亮的表格,进度条,Markdown格式,突出显示语法的源代码及回溯等等,不胜枚举。
Rich支持跨平台,适用于Windows,Linux和OSX。真彩色/表情符号与新版Windows 终端一起使用,Windows 的经典终端仅限 8 种颜色。Rich 还可以无缝配合Jupyter Notebook使用,而无需其他配置。
托管仓库: github:/willmcgugan/rich
Commit数据:
Github星级:18.7K
Diagrams
为了便于使用,一般要使用GUI工具来显示应用内容和交互,比如绘制一个架构图。而Diagrams则无需任何设计工具,直接在Python代码中绘制系统架构图。多系统图标对于多个云提供商(包括AWS,Azure,GCP等)。只需几行代码就能创建一个精美的架构图。
基于代码的图表,还可以通过标准git版本控制来跟踪更改。
托管仓库: github:/ mingrammer/diagrams
Commit数据:
Github星级:11.6 K
PyTorch Lightning
每一种提高数据科学团队生产力的工具都很有价值。没有理由让从事数据科学项目的人每次都重新发明轮子,反复思考如何更好地组织其项目中的代码,或者使用更高级别的抽象的贸易潜力控制。
PyTorch Lightning是一个对PyTorch项目的轻巧打包项目,用于高性能AI研究。通过将科学与工程脱钩来帮助提高生产力。从某种意义上说,它使代码更简洁,对比更像是基于TensorFlow的Keras。但是Lightning更加开放,可以支持让用户访问PyTorch所有常用的API。
PyTorch Lightning库可帮助团队利用围绕组织的软件工程的良好实践并明确组件的职责,以构建可轻松扩展以在多个GPU,TPU和CPU上进行训练的高质量代码。比如在新冠大流行的今天,PyTorch Lightning可以帮用户大家快速的应用防止疫情的控制:
实例——口罩佩戴检查:
实例——肺部MRT图片处理:
托管仓库: github:/ PyTorchLightning/PyTorch-lightning
Commit数据:
Github星级:11.1 K
Typer
Typer是另一个帮助我们开发终端命令行应用的库,由FastAPI开发商tiangolo开发。可以利用Python 3.6+的类型提示功能来编写命令行界面。除了确保代码已正确记录之外,还可以轻松进行CLI界面的验证。通过使用类型提示,可以在Python编辑器(如VSCode)中获得自动补全功能,这将提高您的生产率。
为了增强其功能,Typer依赖著名的Click库。Click经过了严格的测试和实践以及丰富社区和插件,这些在Typer中都可以简单"拿来"使用。
Typer提供完善的文档,可以帮我们快速上手开发。
托管仓库: github:/tiangolo/typer
Commit数据:
Github星级:3.6K
Dear PyGui
虽然,根据前面几个类库帮助,可以让终端APP很漂亮。但是很多时候光终端程序还是远远不够的,需要一个真正的GUI。那么,接下来隆重出场的就是一个Gui类库Dear PyGui。Dear PyGui是对著名的C++ GUI项目Dear ImGui的Python打包。
Dear PyGui利用了在视频游戏中流行的即时模式,动态GUI是逐帧独立绘制的,无需保留任何数据。这是它与其他Python GUI框架的不同点和优势。它具有很高的性能,并使用计算机的GPU来促进构建高度动态的界面,这在工程,仿真,游戏或数据科学应用程序中非常实用。
Dear PyGui易学易用,并且支持多平台开发,可以在Windows 10(DirectX 11),Linux(OpenGL 3)和MacOS(Metal)上运行。
托管仓库: github:/hoffstadt/DearPyGui
Commit数据:
github星级:3.4 K
Hydra
在进行机器学习项目的研究和实验时,总是有无数的设置可以尝试。在非平凡的应用程序中,配置管理会变得相当复杂,非常快。有一种结构化的方式来处理这种复杂性不是很好吗?
Hydra代号九头蛇,就是这样一种工具。九头蛇由脸谱(Facebook)开源实验室推出,用于优雅配置复杂应用程序的框架,可让我们以可组合的方式构建配置,并从命令行或配置文件覆盖某些部分。假设有一个正在试验的模型的基本体系结构,以及它的多种变体。使用Hydra,可以定义基本配置,然后运行多个作业,并进行更改:
- python train_model.py variation=option_a,option_b
- ├── variation
- │ ├── option_a.yaml
- │ └── option_b.yaml
- ├── base.yaml
- └── train_model.py
Hydra同源的一个项目OmegaConf则为分层配置系统的基础提供了一致的API,并支持YAML,配置文件,对象和CLI参数等不同来源。
托管仓库: github/facebookresearch/hydra
Commit数据:
Github星级:3.4 K
Hummingbird
深度学习的发展又带活了AI和机器学习,诸如PyTorch这样的框架正在以惊人的速度发展,并且硬件设备已经过优化,可以更快地运行TensorFlow计算并降低功耗。。但是并非所有的机器学习都是深度学习。通常,机器学习模型由更传统的算法(例如Random Forest)组成,或者使用流行的LightGBM和XGBoost之类的梯度提升方法。
Hummingbird库创建就是为了解决模型新老更替的问题,微软开源的这个新库可以将训练有素的传统ML模型编译为TensorFlow计算。从而无需重新设计模型就可以在TF中使用以前积累的模型。
截止当前,Hummingbird支持PyTorch,TorchScript,ONNX和TVM,以及各种ML模型和矢量化器的转换。其内建的API也与Sklearn paradigm非常相似,后者使可以重用现有代码,但将实现更改为Hummingbird生成的代码。
托管仓库:github:microsoft/hummingbird
Commit数据:
Github星级:2 K
scalene
随着Python库生态系统变得越来越复杂,充满了很多依赖C扩展和多线程代码的代码。在衡量性能时,这成为一个问题。因为CPython内置的探查器无法正确处理多线程代码。
为了解决这个痛点,出现了Scalene。Scalene是用于Python脚本的CPU和内存探查器,能够正确处理多线程代码并区分运行Python和本机代码所花费的时间。无需修改代码,从命令行使用scalene运行脚本,它将为自动生成文本或HTML报告,显示代码每一行的CPU和内存使用情况。
托管仓库:github: emeryberger/scalene
Commit数据:
Github星级:3.2 K
HiPlot
几乎每个数据科学家在其工作中都会遇到要处理高维数据的任务。不幸的是,人脑没有足够的连线直观地处理这种数据,而必须借助其他辅助处理。
由Facebook开源的HiPlot,可使用并行绘图和其他图形方式来表示信息,从而帮助发现高维数据中的相关性和模式,实现对高维数据的可视化和过滤。
HiPlot是交互式的,可扩展的,支持从标准JupyterNotebook或通过其自己的服务器使用它。
托管仓库:github: facebookresearch/hiplot
Commit数据:
Github星级:1.7 K
PrettyErrors
知道了性能瓶颈,那就要解决深层次的原因,或许是逻辑上的问题,或许是有异常代码。
PrettyErrors只做一件事并且做得很好。在支持彩色输出的终端中,它将隐秘的堆栈轨迹转换为更适合用微弱的人眼解析的东西。让我们无需扩充几个大显示器,满屏幕来查找异常。
托管仓库: github:/ onelivesleft/PrettyErrors
Commit数据:
Github星级:1.4 K
总结:
本文我们列举了Python生态圈中,比较热门流行的Python类库。但是这只是Python庞大生态世界的冰山一脚,而且覆盖了各行各业的应用,可能大家关注领域不同,如果你要更好的Python应用可以回复一起分享给逛到小伙伴们。
原文地址:https://www.toutiao.com/i6912292552733491724/