首頁  >  文章  >  後端開發  >  總結2020年最強Python庫

總結2020年最強Python庫

coldplay.xixi
coldplay.xixi轉載
2021-01-05 10:06:082467瀏覽

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

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

下面就讓我們一起來看看吧~

總結2020年最強Python庫

#推薦(免費):Python教學(影片)

1、Typer

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

總結2020年最強Python庫

它是FastAPI的升級版,不僅能夠準確地記錄程式碼,還能夠輕鬆地進行CLI驗證。

Typer易於學習和使用,不需要使用者閱讀複雜的教學文件即可上手。支援編輯器(如VSCode)程式碼自動補全,提高開發人員的開發效率,減少bug的數量。

其次,Typer還能配合命令列神器Click使用,就可以利用Click的優點和插件,實現更複雜的功能。

開源位址:
https://github.com/tiangolo/t...

2、Rich

誰規定CLI介面一定得是黑白的?它也可以是彩色的。

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

總結2020年最強Python庫

它也可以安裝在Python REPL上,所有的資料結構都可以漂亮地輸出或標註。

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

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

但請注意,Rich必須要Python 3.6.1或以上版本。

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

#3、Dear PyGui

如上圖所示,雖然終端應用程式可以做成很漂亮的樣子。但是,你可能還需要一個真正的GUI。

總結2020年最強Python庫

Dear PyGui是一個方便使用、功能強大的Python GUI框架。但是它與其他的Python GUI有著根本上的不同。

它使用了即時模式範式和電腦的GPU來實現動態介面。即時模式範式在電玩遊戲中非常流行,這意味著它的動態GUI不需要保留任何數據,而是逐幀獨立繪製的。同時,它也使用GPU來建構動態介面。

總結2020年最強Python庫

Dear PyGui還可以繪圖、創建主題、創建2D遊戲,還擁有一些小工具,比如說內建文件、日誌記錄、原始碼檢視器之類的,這些小工具可以協助App的開發。

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

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

4、PrettyErrors

PrettyErrors是個精簡Python錯誤訊息的工具,特色是介面十分簡潔友善。

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

總結2020年最強Python庫

而且它可以不用安裝,直接被導入專案中使用,但是需要先配置一些參數,其導入和配置的參數如下:

總結2020年最強Python庫

#開源位址:
https://github.com/onelivesle...

5、Diagrams

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

一般情況下,程式設計師使用GUI工具處理圖表,並將文稿進行視覺化處理。但還有更好的方法,比如說​​使用Diagrams函式庫。

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

只要幾行程式碼,就可以簡單地創造出箭頭符號和結構圖。

總結2020年最強Python庫

因為它使用Graphviz來渲染圖,所以還需要先安裝好Graphviz。

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

6、Hydra and OmegaConf

在做機器學習專案的時候,需要做一大堆的環境配置工作。因此,在一些複雜的應用程式中,組態管理工作也相應變得複雜。

Hydra可以讓設定工作變得簡單。它能夠從命令列或設定檔中覆蓋部分出來,無需維護相似的配置文件,用組合的方式進行配置,從而加快了實驗運行速度。

總結2020年最強Python庫

Hydra相容性強,擁有包含插件的結構,能夠很好地與開發者的操作檔案融合。它的插件還可以實現直接通過命令列,就把程式碼發佈到AWS或其他雲端系統。

Hydra也離不開OmegaConf,兩者關係密不可分,OmegaConf為Hydra的分層配置系統提供了協同的API,二者協同運作可支援YAML、設定檔、物件、CLI參數等。

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

7.PyTorch Lightning

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

總結2020年最強Python庫

它的擴充模型可以在任何硬體(CPU、GPU、TPU)上運行,且容易被複製,刪除了大量的檔案樣本,保持了自身的靈活性,運轉速度快。

Lightning能夠讓DL / ML研究的40多個部分自動化,例如GPU訓練、分散式GPU(叢集)訓練、TPU訓練等等…

因為Lightning將可以將檔案自動匯出到ONNX或TorchScript,所以它適用於進行快速推理的AI研究員、BERT或自監督學習的研究團隊等。

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

8、Hummingbird

Hummingbird是微軟的一項研究成果,它能夠將已經訓練好的ML模型彙編成張量計算,因此不需要設計新的模型。

也讓使用者可以使用神經網路框架(例如PyTorch)來加速傳統的ML模型。

總結2020年最強Python庫

它的推理API跟sklearn範例十分相似,都可以重複使用現有的程式碼,但是它是用Hummingbird產生的程式碼去實現的。

Hummingbird也在Sklearn API之後提供了一個方便的統一推理API。這樣就可以將Sklearn模型與Hummingbird產生的模型互換,而無需更改推理程式碼。

它之所以被重點關注,也因為它能夠支援多種多樣的模型和格式。

到目前為止,Hummingbird支援PyTorch、TorchScript、ONNX和TVM等各種ML模型。

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

#9、HiPlot

##因為ML模型變得越來越複雜,還有很多超參數,於是就需要用到HiPlot。 HiPlot是今年3月Facebook發行的一個函式庫,主要用於處理高維度資料。

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

它是用平行圖和其他的圖像方式,幫助AI研究者發現高維度資料的相關性和模型,是一款輕​​巧的互動式視覺化工具。

總結2020年最強Python庫

HiPlot與其他視覺化工具相比,有其特有的優點:

首先,它的互動性強,因為平行圖是互動的,所以能夠滿足多種情況下的影像視覺化。

其次,它簡單易用,可以透過IPython Notebook或透過帶有「 hiplot」指令的服務直接使用。

它還有具有可擴充性。預設情況下,HiPlot的Web服務可以解析CSV或JSON文件,也可以為其提供自訂Python解析器,將實驗轉換為HiPlot實驗。

開源位址:

https://github.com/facebookre...
參考連結:
https://ai.facebook.com/blog/...

10、Scalene

Scalene是一個用於Python腳本的CPU和記憶體分析器,能夠正確處理多執行緒程式碼,還能區分Python程式碼和本機程式碼的運行時間。

你不需要修改程式碼,只要執行Scalene腳本,它就會產生一個文字形式的報告,顯示出每一行程式碼的CPU和記憶體的使用情況。透過這個文本報告,開發人員可以提高程式碼的效率。

總結2020年最強Python庫

Scalene的速度快、準確率高,也能夠對高耗能的程式碼行進行標註。

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

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

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

如果有的話,請在留言區一起分享一下~

以上是總結2020年最強Python庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除