【我們為什麼挑選這篇文章】Python 開源、易讀、易上手的特色,成為許多程式學習者入門程式的首選語言,在開發市場和教育市場具有很大的潛力。網路上 Python 的模組百百種,剛立下新年學習目標的你,得要找到最適合你開發需求的工具呀!(責任編輯:賴佩萱)
本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請連繫出處
作者:量子位
上榜的有 FastAPI 的升級版 Typer、將 CLI 變成彩色的 Rich、基於 GUI 框架的 Dear PyGui、還有精簡報錯訊息的 PrettyErrors……總有一款是你想要的。
下面就讓我們一起來看看吧!
1. Typer
Typer 跟 FastAPI 的原理相同,都是 Python 上用來構建 API 服務的一個高性能框架。
它是 FastAPI 的升級版,不僅能夠準確地記錄程式碼,還能夠輕鬆地進行 CLI 驗證。
Typer 易於學習和使用,不需要用戶閱讀複雜的教學文檔即可上手。支援編輯器(如VSCode)程式碼自動補全,提高開發人員的開發效率,減少 bug 的數量。
其次,Typer 還能配合命令行神器 Click 使用,就可以利用 Click 的優點和擴充軟體,實現更複雜的功能。
2. Rich
誰規定 CLI 界面一定得是黑白的?它也可以是彩色的。
Rich API 不僅能夠在終端輸出提供豐富的彩色文本和精美的格式,還提供了精美的表格、進度條、編輯器、追蹤器、語法高亮等。如下圖所示:
它還可以安裝在 Python REPL 上,所有的數據結構都可以漂亮地輸出或標註。
總而言之,它是彩色的、漂亮的、強大的。
Rich 兼容性也不錯,適用於 Linux、Mac 和 Windows 等多種系統。真彩色/表情符號可與新的 Windows 終端一起使用。
但是請注意,Rich 必須要 Python 3.6.1 或以上版本。
3. 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)等。
4. PrettyErrors
PrettyErrors 是一個精簡 Python 錯誤訊息的工具,特點是界面十分簡潔友好。
它最顯著的功能是支持在終端進行彩色輸出,標註出文件棧蹤跡,發現錯誤訊息,過濾掉冗餘信訊息,提取出關鍵部分,並且進行彩色標註,從而提高開發者的效率。
而且它可以不用安裝,直接被導入項目中使用,但是需要先配置一些參數,其導入和配置的參數如下:
5. Diagrams
工程師在寫程式的時候,有時候需要跟同事解釋他設計的程式代碼之間複雜的結構關係,然而這不是一兩句話能說清楚的,需要畫表或者做脈絡圖。
一般情況下,工程師使用 GUI 工具處理圖表,並將文稿進行可視化處理,但是還有更好的方法,比如說使用 Diagrams 庫。
Diagrams 讓不需要任何設計類工具,直接在 Python 代碼中繪製雲系統結構。它們的圖標來自多家雲端服務商,包括 AWS、Azure、GCP 等。
僅需幾行程式碼,就可以簡單地創造出箭頭符號和結構圖。
由於它使用 Graphviz 來渲染圖,所以還需要先安裝好 Graphviz。
6. Hydra and OmegaConf
在做機器學習專案的時候,需要做一大堆的環境配置工作。因此,在一些複雜的應用程序中,配置管理工作也相應變得複雜。
Hydra可以使配置工作變得簡單。它能夠從命令行或者配置文件中覆蓋部分出來,無需維護相似的配置文件,用組合的方式進行配置,從而加快了實驗運行速度。
Hydra 兼容性強,擁有含擴充的結構,能夠很好地與開發者的操作文件融合。它的插件還可以實現直接通過命令行,就把程式碼發佈到 AWS 或者其他雲端系統。
Hydra 也離不開 OmegaConf,兩者關係密不可分,OmegaConf 為 Hydra 的分層配置系統提供了協同的 API,二者協同運作可支持 YAML、配置文件、對象、CLI 參數等。
傳送門:https://github.com/facebookresearch/hydra、https://github.com/omry/omegaconf
7. 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/PyTorchLightning/PyTorch-lightning
8. Hummingbird
Hummingbird 是微軟的一項研究成果,它能夠將已經訓練好的 ML 模型彙編成張量計算,從而不需要設計新的模型。
還允許用戶使用神經網路框架(例如 PyTorch)來加速傳統的 ML 模型。
它的推理 API 跟 sklearn 範例十分相似,都可以重複使用現有的代碼,但是它是用Hummingbird 生成的程式碼去實現的。
Hummingbird 還在 Sklearn API 之後提供了一個方便的統一推理 API。這樣就可以將Sklearn 模型與 Hummingbird 生成的模型互換,而無需更改推理程式碼。
它之所以被重點關注,還因為它能夠支持多種多樣的模型和格式。
到目前為止,Hummingbird 支持 PyTorch、TorchScript、ONNX 和 TVM 等各種 ML模型。
9. HiPlot
由於 ML 模型變得越來越複雜,還有很多超參數,於是就需要用到 HiPlot。HiPlot 是今年 3 月 Facebook 發行的一個庫,主要用於處理高維數據。
Facebook AI 透過幾十個超參數和 10 萬多個實驗,利用 HiPlot,來分析深度神經網路。
它是用平行圖和其他的圖像方式,幫助 AI 研究者發現高維數據的相關性和模型,是一款輕巧的交互式可視化工具。
HiPlot 與其他可視化工具相比,有其特有的優點:
首先,它的互動性強,因為平行圖是交互式的,所以能夠滿足多種情況下的圖像可視化。
其次,它簡單易用,可以透過 IPython Notebook 或者通過帶有「hiplot」命令的服務直接使用。
它還有具有可擴展性。默認情況下,HiPlot 的 Web 服務可以解析 CSV 或 JSON 文件,還可以為其提供自定義 Python 解析器,將實驗轉換為 HiPlot 實驗。
10. Scalene
Scalene 是一個用於 Python 腳本的 CPU 和內存分析器,能夠正確處理多線程式碼,還能區分 Python 程式碼和本機程式碼的運行時間。
你不需要修改程式碼,只需運行 Scalene 腳本,它就會生成一個文本形式的報告,顯示出每一行程式碼的 CPU 和內存的使用情況。透過這個文本報告,開發人員可以提高程式碼的效率。
Scalene 的速度快、準確率高,還能夠對高耗能的程式碼進行標註。
除了以上 10 個,還有多個高性能的 Python 庫被點名了,例如 Norfair、Quart、Alibi-detect、Einops……等等,詳情查看底部連結。
那麼,你今年有發現好用的 Python 庫嗎?
如果有的話,請在評論區一起分享一下呀~
參考資料
《tryolabs》
(本文經 AI 新媒體量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為〈誰是 2020 年最強 Python 庫?年度 Top10 出爐〉;首圖來源:unsplash)