2020年年度較強(qiáng)Python庫(kù)排行!
近日,專門提供Python服務(wù)的網(wǎng)站Troy Labs盤點(diǎn)出了2020年發(fā)布的Python庫(kù)Top10。一起來看看2020年最強(qiáng)Python庫(kù)都有哪些:
1. Typer
你可能并不怎么需要寫CLI應(yīng)用程序,但在有些時(shí)候還是需要用到,在FastAPI取得巨大成功之后,tiangolo使用同樣的原理開發(fā)了typo,這是一個(gè)新的庫(kù),它允許你利用Python 3.6+的類型提示特性來編寫命令行接口。
這樣的設(shè)計(jì)除了可以確保你的代碼得到適當(dāng)?shù)奈臋n化,你還可以更快速的得到一個(gè)帶有驗(yàn)證的CLI界面。通過使用類型提示,你可以在編輯器(如VSCode)代碼自動(dòng)補(bǔ)全,大大提高了你的工作效率。
為了增強(qiáng)它的特性,Typer還能配合命令行神器Click使用,這意味著Typer可以充分利用Click的所有優(yōu)點(diǎn)和插件,并根據(jù)自己的需求實(shí)現(xiàn)更加復(fù)雜的功能。
開源地址:https://github.com/tiangolo/typer
2. Rich
誰(shuí)說終端應(yīng)用程序就一定是單一的黑白色?其實(shí)它也可以是彩色的。
你想要在終端添加顏色和樣式么?你想要你的終端可以快速打印復(fù)雜的表么?你想要輕松地顯示漂亮的進(jìn)度條、Emojis么?以上這些功能通通都可以在Rich中實(shí)現(xiàn),看看下面的示例截圖你就懂了:
這個(gè)庫(kù)將終端應(yīng)用程序的體驗(yàn)提升到了一個(gè)全新的水平。
開源地址:https://github.com/willmcgugan/rich
3. Dear PyGui
盡管Rich可以讓你的終端應(yīng)用程序變得很漂亮,但有時(shí)這還不夠,你更需要的是一個(gè)真正的GUI,Dear PyGui是一個(gè)便于使用、功能強(qiáng)大的Python GUI框架。
Dear PyGui使用了在電子游戲中很流行的即時(shí)模式范式。這基本上意味著動(dòng)態(tài)GUI是逐幀獨(dú)立繪制的,不需要持久化任何數(shù)據(jù)。這也是Dear PyGui與其他Python GUI框架不同的地方,Dear PyGui的高性能,是你在工程、模擬、游戲或數(shù)據(jù)科學(xué)應(yīng)用程序中經(jīng)常需要用到的。
Dear PyGui支持Windows 10 (DirectX 11), Linux (OpenGL 3) and MacOS (Metal)
開源地址:https://github.com/hoffstadt/DearPyGui
4. PrettyErrors
PrettyErrors是一個(gè)精簡(jiǎn)Python錯(cuò)誤信息的工具,PrettyErrors只做一件事,它支持在終端進(jìn)行彩色輸出,標(biāo)注出文件棧蹤跡。這樣一來,你就不需要掃描整個(gè)屏幕來找到異常的部分。
開源地址:https://github.com/onelivesleft/PrettyErrors
5. Diagrams
我們程序員喜歡解決問題和編寫代碼,但有時(shí),我們需要向其他同事解釋復(fù)雜的架構(gòu)設(shè)計(jì),作為項(xiàng)目文檔的一部分。一般情況下,我們會(huì)使用GUI工具處理圖表,并將文稿進(jìn)行可視化處理。但是還有更好的方法。
Diagrams可以讓你在沒有任何設(shè)計(jì)工具的情況下直接用Python代碼繪制云系統(tǒng)架構(gòu),它的圖標(biāo)對(duì)包括括AWS、Azure、GCP在內(nèi)的幾家云服務(wù)提供商來說都很有用。這使得創(chuàng)建箭頭和組變得非常容易,而且只需要幾行代碼就能實(shí)現(xiàn)。
開源地址:https://github.com/mingrammer/diagrams
6. Hydra and OmegaConf
在機(jī)器學(xué)習(xí)項(xiàng)目中做研究和實(shí)驗(yàn)時(shí),總是有無數(shù)的設(shè)置可以嘗試,在重要的應(yīng)用程序中,配置管理可能會(huì)變得非常復(fù)雜,如果有一種結(jié)構(gòu)化的方法來處理這些難題就好了。
Hydra允許你以一種可組合的方式構(gòu)建配置,并從命令行或配置文件中覆蓋某些部分。下面舉個(gè)例子,關(guān)于如何使用Hydra定義一個(gè)基本配置,然后用它們運(yùn)行多個(gè)不容的任務(wù):
- python train_model.py variation=option_a,option_b
 
開源地址:https://github.com/facebookresearch/hydra
7. PyTorch Lightning
每一個(gè)能夠提高數(shù)據(jù)科學(xué)團(tuán)隊(duì)生產(chǎn)力的工具都是非常寶貴的。PyTorch Lightning通過將科學(xué)與工程分離的方式來提高效率,它有點(diǎn)像TensorFlow的Keras,在某種意義上,它可以使你的代碼更加簡(jiǎn)潔,不過它依然還是PyTorch,你依然可以訪問所有常用的api。
這個(gè)庫(kù)能夠使DL / ML研究的40多個(gè)部分實(shí)現(xiàn)自動(dòng)化,例如GPU訓(xùn)練、分布式GPU(集群)訓(xùn)練、TPU訓(xùn)練等等……
開源地址:https://github.com/PyTorchLightning/PyTorch-lightning
8. Hummingbird
Hummingbird是微軟的一項(xiàng)研究成果,它能夠?qū)⒁呀?jīng)訓(xùn)練好的ML模型匯編成張量計(jì)算,從而不需要設(shè)計(jì)新的模型。還允許用戶使用神經(jīng)網(wǎng)絡(luò)框架(例如PyTorch)來加速傳統(tǒng)的ML模型。它的推理API跟sklearn范例十分相似,都可以重復(fù)使用現(xiàn)有的代碼,但是它是用Hummingbird生成的代碼去實(shí)現(xiàn)的。
開源地址:https://github.com/microsoft/hummingbird
9. HiPlot
幾乎每一個(gè)數(shù)據(jù)科學(xué)家在他們的職業(yè)生涯中都有過處理高維數(shù)據(jù)的經(jīng)歷。不幸的是,人類的大腦并不能完全憑直覺處理這類數(shù)據(jù),所以我們必須求助于其他技術(shù)。
今年早些時(shí)候,F(xiàn)acebook發(fā)布了HiPlot,它是用平行圖和其他的圖像方式,幫助AI研究者發(fā)現(xiàn)高維數(shù)據(jù)的相關(guān)性和模型,是一款輕巧的交互式可視化工具。HiPlot是交互式的,可擴(kuò)展的,因此你可以在Jupyter Notebooks或者它自己的服務(wù)器上使用它。
開源地址:https://github.com/facebookresearch/hiplot
10. Scalene
隨著Python庫(kù)的生態(tài)系統(tǒng)變得越來越復(fù)雜,我們發(fā)現(xiàn)自己編寫的代碼越來越依賴于C擴(kuò)展和多線程代碼。如何測(cè)試性能這就成一個(gè)問題,因?yàn)镃Python內(nèi)置的分析器不能正確地處理多線程和本機(jī)代碼。
Scalene是一個(gè)高性能的CPU內(nèi)存分析器,它能夠正確處理多線程代碼,并區(qū)分運(yùn)行Python和本機(jī)代碼所花費(fèi)的時(shí)間。不需要修改代碼,只需要使用scalene從命令行運(yùn)行腳本,它就可以為你生成一個(gè)文本或HTML報(bào)告,顯示代碼每行的CPU和內(nèi)存使用情況。
開源地址:https://github.com/emeryberger/scalene
























 
 
 










 
 
 
 