今天是2020年的最后一天,在我们告别纷扰的2020年之际,祝大家新年快乐!另外,大家开始忙于年度总结,冲冲也来给大家做一下节目环节的总结。现在编程界最火的是什么?当然是Python这门语言了,那么我们来总结一下2020年的Python生态,看看今年新增的最热门的类库。1Rich开发终端命令行应用程序。大多数人默认使用黑白字符,或者很难自己拼写ASCI代码。有了这个库Rich,几行代码就可以帮你搞定颜色和样式,还可以制作进度条、表情、边框,以及一些复杂的表格。Rich是一个Python库,它在终端中为Python应用程序提供富文本和漂亮的格式。很容易为终端输出添加各种颜色和不同的样式。Rich还可以绘制漂亮的表格、进度条、Markdown格式、带有语法高亮和回溯的源代码等等。Rich支持跨平台,适用于Windows、Linux和OSX。Truecolor/Emoji适用于较新版本的Windows终端,Windows的经典终端仅限于8种颜色。Rich还可以与JupyterNotebook无缝协作,无需额外配置。托管仓库:github:/willmcgugan/richCommit数据:Github星级:18.7KDiagrams为了易用性,一般使用GUI工具来展示应用内容和交互,比如绘制架构图。Diagrams则是直接用Python代码绘制系统架构图,不需要任何设计工具。多个云提供商(包括AWS、Azure、GCP等)的多系统图标。只需几行代码即可创建漂亮的架构图。基于代码的图表和更改也可以通过标准的git版本控制进行跟踪。托管存储库:github:/mingrammer/diagrams提交数据:Github星级:11.6KPyTorchLightning每一个提高数据科学团队生产力的工具都是有价值的。从事数据科学项目的人没有理由每次都重新发明轮子,反复思考如何更好地组织项目中的代码,或者用更高的抽象级别交换潜在的控制。PyTorchLightning是针对高性能AI研究的PyTorch项目的轻量级封装项目。通过分离科学和工程来帮助提高生产力。从某种意义上说,它让代码更简洁,更像基于TensorFlow的Keras。但Lightning更加开放,可以支持用户访问PyTorch的所有常用API。PyTorchLightning库可帮助团队利用组织软件工程方面的良好实践并明确组件职责,以构建可轻松扩展以在多个GPU、TPU和CPU上进行训练的高质量代码。例如,在今天的COVID-19大流行中,PyTorchLightning可以帮助用户快速应用控制来预防疫情:示例-口罩佩戴检查:示例-肺部MRT图像处理:托管仓库:github:/PyTorchLightning/PyTorch-lightningCommitdata:Github星级:11.1KTyperTyper是另一个帮助我们开发终端命令行应用程序的库,由FastAPI开发者tiangolo开发。可以利用Python3.6+的类型提示功能编写命令行界面。除了确保正确记录代码外,还可以轻松完成CLI界面的验证。通过使用类型提示,您可以在VSCode等Python编辑器中获得自动完成功能,这将提高您的工作效率。为了增强其功能,Typer依赖于著名的Click库。Click经过了严格的测试和实践,还有丰富的社区和插件,可以在Typer中轻松“上手”。Typer提供了完善的文档,可以帮助我们快速上手。托管仓库:github:/tiangolo/typerCommit数据:Github星级:3.6KDearPyGui虽然,根据前面类库的帮助,终端APP可以很漂亮。但在很多情况下,终端程序是不够的,需要一个真正的GUI。那么,接下来隆重登场的就是一个Gui类库DearPyGui。DearPyGui是著名的C++GUI项目DearImGui的Python包。DearPyGui利用视频游戏中流行的立即模式,动态GUI是逐帧独立绘制的,不保留任何数据。这是它相对于其他PythonGUI框架的区别和优势。它的性能非常好,并使用计算机的GPU来促进构建高度动态的界面,这在工程、模拟、游戏或数据科学应用程序中很有用。DearPyGui易学易用,支持多平台开发。它可以在Windows10(DirectX11)、Linux(OpenGL3)和MacOS(Metal)上运行。托管仓库:github:/hoffstadt/DearPyGuiCommit统计数据:github星数:3.4KHydra在研究和试验机器学习项目时,总是有无数的设置可以尝试。在非平凡的应用程序中,配置管理会变得相当复杂,而且速度非常快。有一个结构化的方法来处理这种复杂性不是很好吗?Hydra,代号为Hydra,就是这样一种工具。Hydra由Facebook开源实验室推出,是一个用于优雅地配置复杂应用程序的框架,它允许我们以可组合的方式构建配置并覆盖命令行或配置文件中的某些部分。假设有一个正在试验的模型的基本架构,以及它的几个变体。使用Hydra,可以定义基本配置,然后运行多个作业,并进行更改:pythontrain_model.pyvariation=option_a,option_b├──variation│├──option_a.yaml│└──option_b.yaml├──base.yaml└──train_model.pyOmegaConf,一个与Hydra同源的项目,为分层配置系统的基础提供了一致的API,支持YAML、配置文件、对象、CLI参数等不同来源。托管仓库:github/facebookresearch/hydraCommit数据:Github星级:3.4KHummingbird深度学习的发展让人工智能和机器学习活跃起来。PyTorch等框架正在以惊人的速度发展,并且硬件设备已经过优化,可以更快地运行TensorFlow计算,并且功耗更低。.但并不是所有的机器学习都是深度学习。通常,机器学习模型包含更传统的算法,例如随机森林,或使用梯度提升方法,例如流行的LightGBM和XGBoost。蜂鸟库的创建是为了解决新旧模型的问题。这个由微软开源的新库可以将训练有素的传统ML模型编译成TensorFlow计算。这允许在TF中使用以前积累的模型,而无需重新设计模型。目前,Hummingbird支持PyTorch、TorchScript、ONNX和TVM,以及各种ML模型和向量化器的转换。它的内置API也非常类似于Sklearn范例,这使得重用现有代码成为可能,但将实现更改为由Hummingbird生成的代码。托管仓库:github:microsoft/hummingbird提交数据:Githubstars:2Kscalene随着Python库生态系统变得越来越复杂,充满了依赖C扩展和多线程代码的代码。这在衡量性能时成为一个问题。因为CPython的内置分析器不能正确处理多线程代码。为了解决这个痛点,Scalene出现了。Scalene是Python脚本的CPU和内存分析器,可以正确处理多线程代码并区分运行Python和本机代码所花费的时间。无需修改代码,使用scalene从命令行运行脚本,它会自动生成文本或HTML报告,显示每行代码的CPU和内存使用情况。托管存储库:github:emeryberger/scaleneCommit数据:Github星级:3.2KHiPlot几乎每个数据科学家在工作中都会遇到处理高维数据的任务。不幸的是,人脑的连接能力不足以直观地处理此类数据,必须求助于其他二次处理。由Facebook开源的HiPlot可以使用平行绘图等图形方式来表示信息,从而有助于发现高维数据中的相关性和模式,并对高维数据进行可视化和过滤。HiPlot是交互式的、可扩展的,并支持从标准的JupyterNotebook或通过它自己的服务器使用它。托管仓库:github:facebookresearch/hiplotCommit数据:Github星级:1.7KPrettyErrors知道了性能瓶颈,就要解决深层次的原因,可能是逻辑问题,也可能是代码异常。PrettyErrors只做一件事,而且做得很好。在支持彩色输出的终端中,它将神秘的堆栈跟踪转换为更适合用微弱的人眼解析的东西。让我们在不扩展几台大显示器来填满屏幕的情况下发现异常。托管仓库:github:/onelivesleft/PrettyErrorsCommit数据:Github星级:1.4K总结:在这篇文章中,我们列出了Python生态中比较流行和受欢迎的Python库。但这只是Python庞大生态世界中的冰山一角,它涵盖了各行各业的应用。可能每个人关注的领域不同。如果你想要更好的Python应用,可以回复分享给你的朋友。
