誰是2020年最強Python庫?年度Top10出爐

2020年已通過去了,國外的一家專門提供Python服務的網站Troy Labs,盤點出了2020年發佈的Python庫Top10。html

上榜的有FastAPI的升級版Typer、將CLI變成彩色的Rich、基於GUI框架的Dear PyGui、還有精簡報錯信息的PrettyErrors……總有一款是你想要的。python

下面就讓咱們一塊兒來看看吧~git

一、Typer

Typer跟FastAPI的原理相同,都是Python上用來構建API服務的一個高性能框架。程序員

它是FastAPI的升級版,不只可以準確地記錄代碼,還可以輕鬆地進行CLI驗證。github

Typer易於學習和使用,不須要用戶閱讀複雜的教程文檔便可上手。支持編輯器(如VSCode)代碼自動補全,提升開發人員的開發效率,減小bug的數量。編程

其次,Typer還能配合命令行神器Click使用,就能夠利用Click的優勢和插件,實現更復雜的功能。網絡

開源地址:
https://github.com/tiangolo/t...數據結構

二、Rich

誰規定CLI界面必定得是黑白的?它也能夠是彩色的。多線程

Rich API不只可以在終端輸出提供豐富的彩色文本和精美的格式,還提供了精美的表格、進度條、編輯器、追蹤器、語法高亮等。以下圖所示。框架

它還能夠安裝在Python REPL上,全部的數據結構均可以漂亮地輸出或標註。

總而言之,它是彩色的、漂亮的、強大的。

Rich兼容性也不錯,適用於Linux,Mac和Windows等多種系統。真彩色/表情符號可與新的Windows終端一塊兒使用。

可是請注意,Rich必需要Python 3.6.1或以上版本。

開源地址:
https://github.com/willmcguga...

三、Dear PyGui

如上所示,雖然終端應用程序能夠作成很漂亮的樣子。可是,你可能還須要一個真正的GUI。

Dear PyGui是一個便於使用、功能強大的Python GUI框架。可是它與其餘的Python GUI卻有着根本上的不一樣。

它使用了即時模式範式和計算機的GPU來實現動態界面。即時模式範式在視頻遊戲中很是流行,這意味着它的動態GUI不須要保留任何數據,而是逐幀獨立繪製的。同時,它還使用GPU來建構動態界面。

Dear PyGui還能夠繪圖、建立主題、建立2D遊戲,還擁有一些小工具,好比說內置文檔、日誌記錄、源代碼查看器之類的,這些小工具能夠協助App的開發。

支持它的系統有:Windows 10(DirectX 11),Linux(OpenGL 3)和macOS(Metal)等。

開源地址:
https://github.com/hoffstadt/...

四、PrettyErrors

PrettyErrors是一個精簡Python錯誤信息的工具,特色是界面十分簡潔友好。

它最顯著的功能是支持在終端進行彩色輸出,標註出文件棧蹤影,發現錯誤信息,過濾掉冗餘信息,提取出關鍵部分,而且進行彩色標註,從而提升開發者的效率。

並且它能夠不用安裝,直接被導入項目中使用,可是須要先配置一些參數,其導入和配置的參數以下:

開源地址:
https://github.com/onelivesle...

五、Diagrams

程序員在編程的時候,有時候須要跟同事解釋他設計的程序代碼之間複雜的結構關係,然而這不是一兩句話能說清楚的,須要畫表或者作脈絡圖。

通常狀況下,程序員使用GUI工具處理圖表,並將文稿進行可視化處理。可是還有更好的方法,好比說使用Diagrams庫。

Diagrams讓不須要任何設計類工具,直接在Python代碼中繪製雲系統結構。它們的圖標來自多家雲服務商,包括AWS, Azure, GCP等。

僅需幾行代碼,就能夠簡單地創造出箭頭符號和結構圖。

因爲它使用Graphviz來渲染圖,因此還須要先安裝好Graphviz。

開源地址:
https://github.com/mingrammer...

六、Hydra and OmegaConf

在作機器學習項目的時候,須要作一大堆的環境配置工做。所以,在一些複雜的應用程序中,配置管理工做也相應變得複雜。

Hydra可使配置工做變得簡單。它可以從命令行或者配置文件中覆蓋部分出來,無需維護類似的配置文件,用組合的方式進行配置,從而加快了實驗運行速度。

Hydra兼容性強,擁有含插件的結構,可以很好地與開發者的操做文件融合。它的插件還能夠實現直接經過命令行,就把代碼發佈到AWS或者其餘雲端系統。

Hydra也離不開OmegaConf,二者關係密不可分,OmegaConf爲Hydra的分層配置系統提供了協同的API,兩者協同運做可支持YAML、配置文件、對象、CLI參數等。

開源地址:
https://github.com/facebookre...
https://github.com/omry/omega...

七、PyTorch Lightning

PyTorch Lightning也是Facebook的一個研究成果。它是一個輕巧的PyTorch包裝器,用於高性能AI研究,其最重要的特徵是可以解析PyTorch代碼,讓代碼研究成分和工程成分的分離。

它的擴展模型能夠在任何硬件(CPU、GPU、TPU)上運行,且容易被複制,刪除了大量的文件樣本,保持了自身的靈活性,運行速度快。

Lightning可以使DL / ML研究的40多個部分實現自動化,例如GPU訓練、分佈式GPU(集羣)訓練、TPU訓練等等……

由於Lightning將能夠將文件自動導出到ONNX或TorchScript,因此它適用於進行快速推理的AI研究員、BERT或者自監督學習的研究團隊等。

開源地址:
https://github.com/PyTorchLig...

八、Hummingbird

Hummingbird是微軟的一項研究成果,它可以將已經訓練好的ML模型彙編成張量計算,從而不須要設計新的模型。

還容許用戶使用神經網絡框架(例如PyTorch)來加速傳統的ML模型。

它的推理API跟sklearn範例十分類似,均可以重複使用現有的代碼,可是它是用Hummingbird生成的代碼去實現的。

Hummingbird還在Sklearn API以後提供了一個方便的統一推理API。這樣就能夠將Sklearn模型與Hummingbird生成的模型互換,而無需更改推理代碼。

它之因此被重點關注,還由於它可以支持多種多樣的模型和格式。

到目前爲止,Hummingbird支持PyTorch、TorchScript、ONNX和TVM等各類ML模型。

開源地址:
https://github.com/microsoft/...

九、HiPlot

因爲ML模型變得愈來愈複雜,還有不少超參數,因而就須要用到HiPlot。HiPlot是今年3月Facebook發行的一個庫,主要用於處理高維數據。

Facebook AI經過幾十個超參數和10萬多個實驗,利用HiPlot,來分析深度神經網絡。

它是用平行圖和其餘的圖像方式,幫助AI研究者發現高維數據的相關性和模型,是一款輕巧的交互式可視化工具。

HiPlot與其餘可視化工具相比,有其特有的優勢:

首先,它的互動性強,由於平行圖是交互式的,因此可以知足多種狀況下的圖像可視化。

其次,它簡單易用,能夠經過IPython Notebook或者經過帶有「 hiplot」命令的服務直接使用。

它還有具備可擴展性。默認狀況下,HiPlot的Web服務能夠解析CSV或JSON文件,還能夠爲其提供自定義Python解析器,將實驗轉換爲HiPlot實驗。

開源地址:
https://github.com/facebookre...
參考連接:
https://ai.facebook.com/blog/...

十、Scalene

Scalene是一個用於Python腳本的CPU和內存分析器,可以正確處理多線程代碼,還能區分Python代碼和本機代碼的運行時間。

你不須要修改代碼,只需運行Scalene腳本,它就會生成一個文本形式的報告,顯示出每一行代碼的CPU和內存的使用狀況。經過這個文本報告,開發人員能夠提升代碼的效率。

Scalene的速度快、準確率高,還可以對高耗能的代碼行進行標註。

開源地址
https://github.com/emeryberge...

除了以上10個,還有多個高性能的Python庫被點名了,例如Norfair、Quart、Alibi-detect、Einops……等等,詳情查看底部連接。

那麼,你今年有發現好用的Python庫嗎?

若是有的話,請在評論區一塊兒分享一下呀~

參考連接:
https://tryolabs.com/blog/202...

Top 10 Reasons Why Python is So Popular With Developers in 2020
原文: https://www.qbitai.com/2021/0...

image

相關文章
相關標籤/搜索