近日,专门提供Python服务的网站TroyLabs盘点了2020年发布的Top10Python库。我们来看看2020年最强的几个Python库:1.Typer你可能不需要非常喜欢写CLI应用程序,但有时您仍然需要使用它。在FastAPI取得巨大成功之后,tiangolo使用相同的原理开发了引入的typo,这是一个新的库,允许您编写命令行界面,利用Python3.6+的类型提示功能。这种设计不仅确保您的代码被正确记录,而且还允许您更快地获得带有验证的CLI界面。通过使用类型提示,您可以在编辑器(如VSCode)中自动完成代码,大大提高您的工作效率。为了增强其功能,Typer还可以与命令行神器Click一起使用,这意味着Typer可以充分利用Click的所有优点和插件,根据自身的需要实现更复杂的功能。开源地址:https://github.com/tiangolo/typer2。Rich谁说终端应用一定是黑白单色的?其实也可以上色。您想为终端添加颜色和样式吗?您想让您的终端快速打印复杂的表格吗?想要轻松展示漂亮的进度条和表情包吗?以上所有功能都可以在Rich中实现,请看下面的示例截图:这个库将终端应用体验提升到一个全新的水平。开源地址:https://github.com/willmcgugan/rich3。DearPyGui虽然Rich可以让你的终端应用程序变得漂亮,但有时候这还不够,你需要的是一个真正的GUI,DearPyGui是一个易于使用、功能强大的PythonGUI框架。DearPyGui使用视频游戏中流行的即时模式范例。这基本上意味着动态GUI是逐帧独立绘制的,没有任何数据被持久化。这也是DearPyGui与其他PythonGUI框架的区别。亲爱的PyGui的高性能是您在工程、模拟、游戏或数据科学应用程序中经常需要使用的。亲爱的PyGui支持Windows10(DirectX11)、Linux(OpenGL3)和MacOS(Metal)。开源地址:https://github.com/hoffstadt/DearPyGui4。PrettyErrorsPrettyErrors是一个简化Python错误消息的工具,PrettyErrors只做一件事它支持在终端中输出颜色并标记文件堆栈跟踪。这样,您无需扫描整个屏幕即可找到异常部分。开源地址:https://github.com/onelivesleft/PrettyErrors5。Diagrams我们程序员喜欢解决问题和编写代码,但有时,我们需要作为项目文档的一部分向其他同事解释复杂的架构设计。通常,我们使用GUI工具来处理图表和可视化文档。但是有更好的方法。Diagrams允许您直接使用Python代码绘制云系统架构,无需任何设计工具,其图标适用于包括AWS、Azure和GCP在内的多家云服务提供商。这使得创建箭头和组变得非常容易,而且只需要几行代码就可以完成。开源地址:https://github.com/mingrammer/diagrams6。Hydra和OmegaConf在做机器学习项目的研究和实验时,总是有无数的设置要尝试。在重要的应用程序中,配置管理可能会发生变化。非常复杂,如果有一个结构化的方法来处理这些困难的问题会很好。Hydra允许您以可组合的方式构建配置并覆盖命令行或配置文件中的某些部分。下面举例说明如何使用Hydra定义一个基本配置,然后使用它们运行多个不兼容的任务:pythontrain_model.pyvariation=option_a,option_b开源地址:https://github.com/facebookresearch/hydra7。PyTorchLightning对于每个提高数据科学团队生产力的工具都是无价的。PyTorchLightning通过分离科学和工程来提高效率。它有点像TensorFlow的Keras,从某种意义上说,它可以让你的代码更简洁,但它仍然是PyTorch,你仍然可以访问所有常用的API。这个库可以自动化40多个部分的DL/ML研究,比如GPU训练、分布式GPU(集群)训练、TPU训练等等……开源地址:https://github.com/PyTorchLightning/PyTorch-lightning8.HummingbirdHummingbird是微软的一项研究成果,可以将已经训练好的ML模型编译成张量计算,无需设计新模型。它还允许用户使用PyTorch等神经网络框架来加速传统的ML模型。它的推理API与sklearn范式非常相似,可以重用现有代码,但它是用Hummingbird生成的代码实现的。开源地址:https://github.com/microsoft/hummingbird9。HiPlot几乎每个数据科学家在其职业生涯中都有处理高维数据的经验。不幸的是,人脑并不能非常直观地处理这类数据,所以我们不得不求助于其他技术。今年早些时候,Facebook发布了HiPlot,它使用平行图和其他图像方法帮助AI研究人员发现高维数据中的相关性和模型。它是一个轻量级的交互式可视化工具。HiPlot是交互式和可扩展的,因此您可以在JupyterNotebooks或它自己的服务器中使用它。开源地址:https://github.com/facebookresearch/hiplot10。Scalene随着Python库的生态系统变得越来越复杂,我们发现我们编写的代码越来越依赖于C扩展和多线程代码。如何衡量性能这成为一个问题,因为CPython内置的分析器无法正确处理多线程和本机代码。Scalene是一种高性能CPU内存分析器,可以正确处理多线程代码并区分运行Python和本机代码所花费的时间。无需修改代码,只需使用scalene从命令行运行脚本,它就会为您生成文本或HTML报告,显示每行代码的CPU和内存使用情况。开源地址:https://github.com/emeryberger/scalene
