当前位置: 首页 > 科技观察

我的Top10Python库

时间:2023-03-16 00:32:20 科技观察

大家好,我是明哥。在这篇文章中,我推荐了10个实用的python库,每一个都是同类中的佼佼者。尝试过后,您一定会爱上它。如果你想学习,你应该学习这样的图书馆。有FastAPI的升级版Typer,有让CLI变色的Rich,有基于GUI框架的DearPyGui,还有有简化报错信息的PrettyErrors……一起来看看吧~1.Typer的原理Typer和FastAPI一样,都是在Python上构建API服务的高性能框架。它是FastAPI的升级版,不仅可以准确记录代码,还可以轻松进行CLI验证。Typer易学易用,不需要用户阅读复杂的教程文档即可上手。支持编辑器(如VSCode)代码自动补全,提高开发者开发效率,减少bug数量。其次,Typer还可以配合命令行神器Click使用,可以利用Click的优点和插件实现更复杂的功能。开源地址:https://github.com/tiangolo/typer2,Rich谁规定CLI界面必须是黑白的?它也可以着色。RichAPI不仅可以在终端输出中提供丰富的彩色文本和漂亮的格式,还可以提供漂亮的表格、进度条、编辑器、跟踪器、语法高亮等。如下图所示。也可以安装在PythonREPL上,所有数据结构都可以漂亮的输出或注解。总而言之,它色彩缤纷、美丽而强大。丰富的兼容性也不错,适用于Linux、Mac和Windows等各种系统。真彩色/表情符号适用于新的Windows终端。但请注意,Rich必须有Python3.6.1或以上版本。开源地址:https://github.com/willmcgugan/rich3,亲爱的PyGui如上图,虽然终端应用可以做成很漂亮的样子。但是,您可能还需要一个真正的GUI。DearPyGui是一个易于使用、功能强大的PythonGUI框架。但它与其他PythonGUI有着根本的不同。它使用即时模式范式和计算机的GPU来实现动态界面。立即模式范式在视频游戏中非常流行,这意味着它的动态GUI不需要保留任何数据,而是逐帧独立绘制。同时,它还使用GPU构建动态界面。DearPyGui还可以绘图、创建主题、创建2D游戏,还有一些小工具,比如内置文档、日志记录、源代码查看器等,这些小工具可以辅助App开发。支持的系统有:Windows10(DirectX11)、Linux(OpenGL3)和macOS(Metal)等。开源地址:https://github.com/hoffstadt/DearPyGui4,PrettyErrorsPrettyErrors是一个精简工具Python错误消息,具有非常简单和友好的界面。其最显着的功能是支持终端彩色输出,标记文件堆栈轨迹,查找错误信息,过滤掉冗余信息,提取关键部分,彩色标记,从而提高开发人员效率。并且可以不安装直接导入到项目中,但是需要先配置一些参数。导入和配置的参数如下:开源地址:https://github.com/onelivesleft/PrettyErrors5,Diagrams程序员在编程时,有时需要向同事解释他设计的程序代码之间复杂的结构关系。但是这个不能一两句话说清楚,需要画个表格或者做个脉络图。通常,程序员使用GUI工具来处理图表和可视化文档。但是有更好的方法,比如使用Diagrams库。Diagrams允许您直接在Python代码中绘制云系统结构,而无需任何设计工具。他们的图标来自多个云服务提供商,包括AWS、Azure、GCP等,只需几行代码就可以轻松创建箭头符号和结构图。由于使用Graphviz来渲染图像,因此需要先安装Graphviz。开源地址:https://github.com/mingrammer/diagrams6,Hydra和OmegaConf在做机器学习项目时需要做大量的环境配置工作。因此,在一些复杂的应用中,配置管理也相应变得复杂。Hydra使配置变得简单。它可以从命令行或配置文件覆盖部分,无需维护类似的配置文件,并以组合的方式配置它们,从而加快实验的运行。Hydra兼容性强,采用插件式结构,可以很好的与开发者的操作文件集成。其插件还可以直接通过命令行将代码发布到AWS或其他云系统。Hydra也离不开OmegaConf,两者的关系密不可分。OmegaConf为Hydra的分层配置系统提供了协作API。两者协同运行可以支持YAML、配置文件、对象、CLI参数等。开源地址:https://github.com/facebookresearch/hydra、https://github.com/omry/omegaconf7、PyTorchLightningPyTorchLightning也是Facebook的一项研究成果。它是用于高性能AI研究的轻量级PyTorch包装器,其最重要的特性是能够解析PyTorch代码,允许代码研究组件和工程组件分离。其扩展模型可以在任何硬件(CPU、GPU、TPU)上运行,并且易于复制,删除大量文件样本,保持自身的灵活性,运行速度快。Lightning可以自动化40多个部分的DL/ML研究,例如GPU训练、分布式GPU(集群)训练、TPU训练等...因为Lightning将能够自动将文件导出到ONNX或TorchScript,它适用于做快速推理的AI研究人员,BERT或自监督学习研究团队等。开源地址:https://github.com/PyTorchLightning/PyTorch-lightning8,HummingbirdHummingbird是微软的研究成果,可以编译已经训练好的ML模型转化为张量计算,无需设计新模型。它还允许用户使用PyTorch等神经网络框架来加速传统的ML模型。它的推理API与sklearn范式非常相似,可以重用现有代码,但它是用Hummingbird生成的代码实现的。Hummingbird还在SklearnAPI之后提供了一个方便的统一推理API。这使得可以在不更改推理代码的情况下将Sklearn模型与蜂鸟生成的模型互换。它还因其支持多种模型和格式的能力而备受瞩目。目前,Hummingbird支持PyTorch、TorchScript、ONNX、TVM等多种机器学习模型。开源地址:https://github.com/microsoft/hummingbird9,HiPlot由于ML模型越来越复杂,超参数很多,所以需要HiPlot。HiPlot是Facebook今年3月份发布的一个库,主要用于处理高维数据。FacebookAI使用HiPlot通过数十个超参数和超过100,000次实验来分析深度神经网络。它使用平行图和其他图像方法帮助人工智能研究人员发现高维数据的相关性和模型。它是一个轻量级的交互式可视化工具。与其他可视化工具相比,HiPlot有其独特的优势:一是交互性强,由于平行图具有交互性,因此可以满足各种情况下的图像可视化。其次,它使用简单,可以直接通过IPythonNotebook或通过带有“hiplot”命令的服务使用。它也是可扩展的。默认情况下,HiPlot的web服务可以解析CSV或JSON文件,也可以提供自定义的Python解析器,将实验转换为HiPlot实验。开源地址:https://github.com/facebookresearch/hiplot参考链接:https://ai.facebook.com/blog/hiplot-high-dimensional-interactive-plots-made-easy10,ScaleneScalene是一个Python脚本A正确处理多线程代码并区分Python代码和本机代码的运行时间的CPU和内存分析器。您无需修改??代码,只需运行Scalene脚本,它就会生成一份文本报告,显示每行代码的CPU和内存使用情况。通过这个文本报告,开发者可以提高代码的效率。Scalene快速、准确,并且能够注释能量密集型代码行。开源地址:https://github.com/emeryberger/scalene除了以上10个,还有很多被点名的高性能Python库,比如Norfair、Quart、Alibi-detect、Einops等,详情见底部链接。