誰(shuí)是 2020 年最強(qiáng) Python 庫(kù)?年度 Top 10 出爐!

2020 年已經(jīng)過(guò)去了,國(guó)外的一家專(zhuān)門(mén)提供 Python 服務(wù)的網(wǎng)站 Troy Labs,盤(pán)點(diǎn)出了 2020 年發(fā)布的 Python 庫(kù) Top10。
上榜的有 FastAPI 的升級(jí)版 Typer、將 CLI 變成彩色的 Rich、基于 GUI 框架的 Dear PyGui、還有精簡(jiǎn)報(bào)錯(cuò)信息的 PrettyErrors……總有一款是你想要的。
下面就讓我們一起來(lái)看看吧~
1、Typer
Typer 跟 FastAPI 的原理相同,都是 Python 上用來(lái)構(gòu)建 API 服務(wù)的一個(gè)高性能框架。
它是 FastAPI 的升級(jí)版,不僅能夠準(zhǔn)確地記錄代碼,還能夠輕松地進(jìn)行 CLI 驗(yàn)證。
Typer 易于學(xué)習(xí)和使用,不需要用戶(hù)閱讀復(fù)雜的教程文檔即可上手。支持編輯器(如 VSCode)代碼自動(dòng)補(bǔ)全,提高開(kāi)發(fā)人員的開(kāi)發(fā)效率,減少 bug 的數(shù)量。
其次,Typer 還能配合命令行神器 Click 使用,就可以利用 Click 的優(yōu)點(diǎn)和插件,實(shí)現(xiàn)更復(fù)雜的功能。
開(kāi)源地址:
https://github.com/tiangolo/typer
2、Rich
誰(shuí)規(guī)定 CLI 界面一定得是黑白的?它也可以是彩色的。
Rich API 不僅能夠在終端輸出提供豐富的彩色文本和精美的格式,還提供了精美的表格、進(jìn)度條、編輯器、追蹤器、語(yǔ)法高亮等。如下圖所示。
它還可以安裝在 Python REPL 上,所有的數(shù)據(jù)結(jié)構(gòu)都可以漂亮地輸出或標(biāo)注。
總而言之,它是彩色的、漂亮的、強(qiáng)大的。
Rich 兼容性也不錯(cuò),適用于 Linux,Mac 和 Windows 等多種系統(tǒng)。真彩色/表情符號(hào)可與新的 Windows 終端一起使用。
但是請(qǐng)注意,Rich 必須要 Python 3.6.1 或以上版本。
開(kāi)源地址:
https://github.com/willmcgugan/rich
3、Dear PyGui
如上所示,雖然終端應(yīng)用程序可以做成很漂亮的樣子。但是,你可能還需要一個(gè)真正的 GUI。
Dear PyGui 是一個(gè)便于使用、功能強(qiáng)大的 Python GUI 框架。但是它與其他的 Python GUI 卻有著根本上的不同。
它使用了即時(shí)模式范式和計(jì)算機(jī)的 GPU 來(lái)實(shí)現(xiàn)動(dòng)態(tài)界面。即時(shí)模式范式在視頻游戲中非常流行,這意味著它的動(dòng)態(tài) GUI 不需要保留任何數(shù)據(jù),而是逐幀獨(dú)立繪制的。同時(shí),它還使用 GPU 來(lái)建構(gòu)動(dòng)態(tài)界面。
Dear PyGui 還可以繪圖、創(chuàng)建主題、創(chuàng)建 2D 游戲,還擁有一些小工具,比如說(shuō)內(nèi)置文檔、日志記錄、源代碼查看器之類(lèi)的,這些小工具可以協(xié)助 App 的開(kāi)發(fā)。
支持它的系統(tǒng)有:Windows 10(DirectX 11),Linux(OpenGL 3)和 macOS(Metal)等。
開(kāi)源地址:
https://github.com/hoffstadt/DearPyGui
4、PrettyErrors
PrettyErrors 是一個(gè)精簡(jiǎn) Python 錯(cuò)誤信息的工具,特點(diǎn)是界面十分簡(jiǎn)潔友好。
它最顯著的功能是支持在終端進(jìn)行彩色輸出,標(biāo)注出文件棧蹤跡,發(fā)現(xiàn)錯(cuò)誤信息,過(guò)濾掉冗余信息,提取出關(guān)鍵部分,并且進(jìn)行彩色標(biāo)注,從而提高開(kāi)發(fā)者的效率。
而且它可以不用安裝,直接被導(dǎo)入項(xiàng)目中使用,但是需要先配置一些參數(shù),其導(dǎo)入和配置的參數(shù)如下:

開(kāi)源地址:
https://github.com/onelivesleft/PrettyErrors
5、Diagrams
程序員在編程的時(shí)候,有時(shí)候需要跟同事解釋他設(shè)計(jì)的程序代碼之間復(fù)雜的結(jié)構(gòu)關(guān)系,然而這不是一兩句話能說(shuō)清楚的,需要畫(huà)表或者做脈絡(luò)圖。
一般情況下,程序員使用 GUI 工具處理圖表,并將文稿進(jìn)行可視化處理。但是還有更好的方法,比如說(shuō)使用 Diagrams 庫(kù)。
Diagrams 讓不需要任何設(shè)計(jì)類(lèi)工具,直接在 Python 代碼中繪制云系統(tǒng)結(jié)構(gòu)。它們的圖標(biāo)來(lái)自多家云服務(wù)商,包括 AWS, Azure, GCP 等。
僅需幾行代碼,就可以簡(jiǎn)單地創(chuàng)造出箭頭符號(hào)和結(jié)構(gòu)圖。
由于它使用 Graphviz 來(lái)渲染圖,所以還需要先安裝好 Graphviz。
開(kāi)源地址:
https://github.com/mingrammer/diagrams
6、Hydra and OmegaConf
在做機(jī)器學(xué)習(xí)項(xiàng)目的時(shí)候,需要做一大堆的環(huán)境配置工作。因此,在一些復(fù)雜的應(yīng)用程序中,配置管理工作也相應(yīng)變得復(fù)雜。
Hydra 可以使配置工作變得簡(jiǎn)單。它能夠從命令行或者配置文件中覆蓋部分出來(lái),無(wú)需維護(hù)相似的配置文件,用組合的方式進(jìn)行配置,從而加快了實(shí)驗(yàn)運(yùn)行速度。
Hydra 兼容性強(qiáng),擁有含插件的結(jié)構(gòu),能夠很好地與開(kāi)發(fā)者的操作文件融合。它的插件還可以實(shí)現(xiàn)直接通過(guò)命令行,就把代碼發(fā)布到 AWS 或者其他云端系統(tǒng)。
Hydra 也離不開(kāi) OmegaConf,兩者關(guān)系密不可分,OmegaConf 為 Hydra 的分層配置系統(tǒng)提供了協(xié)同的 API,二者協(xié)同運(yùn)作可支持 YAML、配置文件、對(duì)象、CLI 參數(shù)等。
開(kāi)源地址:
https://github.com/facebookresearch/hydra
https://github.com/omry/omegaconf
7、PyTorch Lightning
PyTorch Lightning 也是 Facebook 的一個(gè)研究成果。它是一個(gè)輕巧的 PyTorch 包裝器,用于高性能 AI 研究,其最重要的特征是能夠解析 PyTorch代碼,讓代碼研究成分和工程成分的分離。
它的擴(kuò)展模型可以在任何硬件(CPU、GPU、TPU)上運(yùn)行,且容易被復(fù)制,刪除了大量的文件樣本,保持了自身的靈活性,運(yùn)行速度快。
Lightning 能夠使 DL / ML 研究的 40 多個(gè)部分實(shí)現(xiàn)自動(dòng)化,例如 GPU訓(xùn)練、分布式 GPU(集群)訓(xùn)練、TPU 訓(xùn)練等等……
因?yàn)?Lightning 將可以將文件自動(dòng)導(dǎo)出到 ONNX 或T orchScript,所以它適用于進(jìn)行快速推理的 AI 研究員、BERT 或者自監(jiān)督學(xué)習(xí)的研究團(tuán)隊(duì)等。
開(kāi)源地址:
https://github.com/PyTorchLightning/PyTorch-lightning
8、Hummingbird
Hummingbird 是微軟的一項(xiàng)研究成果,它能夠?qū)⒁呀?jīng)訓(xùn)練好的 ML 模型匯編成張量計(jì)算,從而不需要設(shè)計(jì)新的模型。
還允許用戶(hù)使用神經(jīng)網(wǎng)絡(luò)框架(例如 PyTorch)來(lái)加速傳統(tǒng)的 ML 模型。
它的推理 API 跟 sklearn 范例十分相似,都可以重復(fù)使用現(xiàn)有的代碼,但是它是用 Hummingbird 生成的代碼去實(shí)現(xiàn)的。
Hummingbird 還在 Sklearn API 之后提供了一個(gè)方便的統(tǒng)一推理API。這樣就可以將 Sklearn 模型與 Hummingbird 生成的模型互換,而無(wú)需更改推理代碼。
它之所以被重點(diǎn)關(guān)注,還因?yàn)樗軌蛑С侄喾N多樣的模型和格式。
到目前為止,Hummingbird 支持 PyTorch、TorchScript、ONNX 和 TVM 等各種 ML 模型。
開(kāi)源地址:
https://github.com/microsoft/hummingbird
9、HiPlot
由于 ML 模型變得越來(lái)越復(fù)雜,還有很多超參數(shù),于是就需要用到 HiPlot。HiPlot 是今年 3 月 Facebook 發(fā)行的一個(gè)庫(kù),主要用于處理高維數(shù)據(jù)。
Facebook AI 通過(guò)幾十個(gè)超參數(shù)和 10 萬(wàn)多個(gè)實(shí)驗(yàn),利用 HiPlot,來(lái)分析深度神經(jīng)網(wǎng)絡(luò)。
它是用平行圖和其他的圖像方式,幫助AI研究者發(fā)現(xiàn)高維數(shù)據(jù)的相關(guān)性和模型,是一款輕巧的交互式可視化工具。
HiPlot 與其他可視化工具相比,有其特有的優(yōu)點(diǎn):
首先,它的互動(dòng)性強(qiáng),因?yàn)槠叫袌D是交互式的,所以能夠滿(mǎn)足多種情況下的圖像可視化。
其次,它簡(jiǎn)單易用,可以通過(guò) IPython Notebook 或者通過(guò)帶有“ hiplot”命令的服務(wù)直接使用。
它還有具有可擴(kuò)展性。默認(rèn)情況下,HiPlot 的 Web 服務(wù)可以解析 CSV 或 JSON 文件,還可以為其提供自定義 Python 解析器,將實(shí)驗(yàn)轉(zhuǎn)換為 HiPlot 實(shí)驗(yàn)。
開(kāi)源地址:
https://github.com/facebookresearch/hiplot
參考鏈接:
https://ai.facebook.com/blog/hiplot-high-dimensional-interactive-plots-made-easy
10、Scalene
Scalene 是一個(gè)用于 Python 腳本的 CPU 和內(nèi)存分析器,能夠正確處理多線程代碼,還能區(qū)分 Python 代碼和本機(jī)代碼的運(yùn)行時(shí)間。
你不需要修改代碼,只需運(yùn)行 Scalene 腳本,它就會(huì)生成一個(gè)文本形式的報(bào)告,顯示出每一行代碼的 CPU 和內(nèi)存的使用情況。通過(guò)這個(gè)文本報(bào)告,開(kāi)發(fā)人員可以提高代碼的效率。
Scalene 的速度快、準(zhǔn)確率高,還能夠?qū)Ω吆哪艿拇a行進(jìn)行標(biāo)注。
開(kāi)源地址
https://github.com/emeryberger/scalene
除了以上 10 個(gè),還有多個(gè)高性能的 Python 庫(kù)被點(diǎn)名了,例如 Norfair、Quart、Alibi-detect、Einops……等等,詳情查看底部鏈接。
那么,你今年有發(fā)現(xiàn)好用的 Python 庫(kù)嗎?
如果有的話,請(qǐng)?jiān)谠u(píng)論區(qū)一起分享一下呀~
參考鏈接:
https://tryolabs.com/blog/2020/12/21/top-10-python-libraries-of-2020/
https://www.upgrad.com/blog/reasons-why-python-popular-with-developers/

大家好,最后給大家免費(fèi)分享 Python 三件套:《ThinkPython》、《簡(jiǎn)明Python教程》、《Python進(jìn)階》的PDF電子版。如果你是剛?cè)腴T(mén)的小白,不用想了,這是最好的學(xué)習(xí)教材。
現(xiàn)在免費(fèi)分享出來(lái),有需要的讀者可以下載學(xué)習(xí),在下面的公眾號(hào)里回復(fù)關(guān)鍵字:三件套,就行。
領(lǐng)取方式:
長(zhǎng)按掃碼,發(fā)消息?[三件套]
