App下載

2020 年度 Python 庫 Top 10 榜單

猿友 2021-01-09 11:39:07 瀏覽數(shù) (7394)
反饋

2020年最熱門的Python庫有哪些?評判規(guī)則很簡單。小編為大家尋找的庫滿足以下條件:

  • 它于2020年推出或普及。
  • 自發(fā)布以來,一直得到很好的維護(hù)。
  • 它非??幔鷳?yīng)該使用一下它。

免責(zé)聲明:我們的選擇在很大程度上受機(jī)器學(xué)習(xí)/數(shù)據(jù)科學(xué)庫的影響,盡管其中某些庫確實對非數(shù)據(jù)科學(xué)人士也同樣受用。

推薦好課:Python3進(jìn)階:數(shù)據(jù)分析及可視化、Keras 深度學(xué)習(xí)入門與實戰(zhàn)。

這篇文章的精神是使這些庫更為大眾所知,因此,事不宜遲,讓我們開始吧。

1、Typer

您不一定總是需要編寫 CLI 應(yīng)用程序,但這樣做可以省不少事。在 FastAPI(https://fastapi.tiangolo.com/) 取得巨大成功之后,tiangolo (https://twitter.com/tiangolo) 使用了相同的原理為我們帶來了 Typer:一個新的庫,使您可以利用Python 3.6+的類型提示功能來編寫命令行界面。

該設(shè)計的確使Typer脫穎而出。除了確保代碼已正確記錄之外,您還可以輕松進(jìn)行CLI界面的驗證。通過使用類型提示,您可以在Python編輯器(如VS Code)中獲得自動補(bǔ)全功能,這將提高您的生產(chǎn)率。

為了增強(qiáng)其功能,Typer內(nèi)核是基于Click(https://click.palletsprojects.com/en/7.x/)的,而Click則是眾所周知,并且經(jīng)過了嚴(yán)格的測試。這意味著它可以利用其所有好處,如社區(qū)和插件,同時以更少的樣板代碼從簡單開始,并根據(jù)需要變得復(fù)雜。

Typer文檔(https://typer.tiangolo.com/)確實很有幫助,并且應(yīng)該成為其他項目的典范。絕對不能錯過!

2. Rich

順著CLI的主題,誰說終端應(yīng)用程序必須是純白色,或者如果您是真正的黑客,則必須是綠色,是黑色?

是否要在終端輸出中添加顏色和樣式?毫不費力地顯示漂亮的進(jìn)度條?Markdown?表情符號?Rich可以實現(xiàn)上述所有功能。查看下面示例截圖可以進(jìn)一步了解:

Rich 絕對是一個可以將使用終端應(yīng)用程序的體驗提升到全新水平的庫。

3. Dear PyGui

盡管如我們所見,終端應(yīng)用程序可以很漂亮,但有時還不夠,您需要一個真正的GUI。目前流行的Dear ImGui C ++項目(https://github.com/ocornut/imgui)的Python分支Dear PyGui正是為此而誕生。

Dear PyGui利用了在視頻游戲中廣為流行的即時模式范例(immediate mode paradigm)。這基本上意味著動態(tài)GUI是逐幀獨立繪制的,無需保留任何數(shù)據(jù)。這使得該工具與其他Python GUI框架有著根本不同。它具有高性能,并使用計算機(jī)的GPU來促進(jìn)高度動態(tài)界面的構(gòu)建,這在工程,仿真,游戲或數(shù)據(jù)科學(xué)應(yīng)用程序中經(jīng)常用到。

Dear PyGui可以在沒有陡峭的學(xué)習(xí)曲線的情況下使用,并且可以在Windows 10(DirectX 11),Linux(OpenGL 3)和MacOS(Metal)上運(yùn)行。

4. PrettyErrors

大道至簡,這是一個值得讓您思考的庫:以前沒人想過這是怎么回事?

PrettyErrors只做一件事并且做得很好。在支持彩色輸出的終端中,它將隱秘的堆棧軌跡轉(zhuǎn)換成更適合用微弱的人眼解析的東西。無需再掃描整個屏幕來查找異常的原因……您現(xiàn)在就可以一目了然!

5. Diagrams

我們程序員喜歡用代碼解決問題。但是有時,我們需要向其他同事解釋復(fù)雜的架構(gòu)設(shè)計。傳統(tǒng)上,我們使用GUI工具,在其中我們可以處理圖表和可視化以放入演示文稿和文檔。但這不是唯一的方法。

Diagrams使您無需任何設(shè)計工具即可直接在Python代碼中繪制云系統(tǒng)架構(gòu)。它包含的圖標(biāo)支持多個云提供商(包括AWS,Azure,GCP)。這使創(chuàng)建箭頭和組非常容易。真的,只有幾行代碼!

基于代碼的圖表的最好之處是什么?您可以通過git使用版本控制來掌控進(jìn)度!

6. HydraOmegaConf

在進(jìn)行機(jī)器學(xué)習(xí)項目的研究和實驗時,總是有無數(shù)的設(shè)置可以嘗試。在非平凡解的應(yīng)用程序中,配置管理會變得相當(dāng)復(fù)雜,非??臁S幸环N結(jié)構(gòu)化的方式來處理這種復(fù)雜性不是很好嗎?

Hydra是一種工具,可讓您以可組合的方式構(gòu)建配置,并從命令行或配置文件覆蓋某些部分。

為了說明可以通過該庫簡化的一些常見任務(wù),假設(shè)有一個我們正在嘗試的模型的基本體系結(jié)構(gòu),以及它的多種變體。使用Hydra,可以定義基本配置,然后運(yùn)行多個作業(yè),并進(jìn)行以下更改:

  1. python train_model.py variation=option_a,option_b
  1. ├── variation
  2. │   ├── option_a.yaml
  3. │   └── option_b.yaml
  4. ├── base.yaml
  5. └── train_model.py

Hydra 的表親 OmegaConf 為分層配置系統(tǒng)的基礎(chǔ)提供了一致的API,并支持YAML,配置文件,對象和CLI參數(shù)等不同來源。

這是21世紀(jì)進(jìn)行配置管理的必備條件!

7. PyTorch Lightning

每一種提高數(shù)據(jù)科學(xué)團(tuán)隊生產(chǎn)力的工具都值得鼓勵。沒有理由讓從事數(shù)據(jù)科學(xué)項目的人每次都重新發(fā)明輪子,反復(fù)思考如何更好地組織其項目中的代碼,使用維護(hù)得不好的“ PyTorch 樣板”,或者使用更高級別的抽象功能。

PyTorch Lightning 通過將科學(xué)與工程分離而有助于提高生產(chǎn)率。從某種意義上說,它使您的代碼更簡潔,有點像 TensorFlow 的 Keras。但是它仍然是PyTorch,您可以訪問所有常用的API。

該庫可幫助團(tuán)隊利用圍繞組織的軟件工程的良好實踐和明確的組件職責(zé)來構(gòu)建可輕松擴(kuò)展,以在多個GPU,TPU和CPU上進(jìn)行訓(xùn)練高質(zhì)量代碼。

一個可以幫助數(shù)據(jù)科學(xué)團(tuán)隊的初級成員產(chǎn)生更好結(jié)果的庫,但是,由于整體生產(chǎn)力的提高,而且沒有放棄控制權(quán),更有經(jīng)驗的成員會喜歡它。

8. Hummingbird

并非所有的機(jī)器學(xué)習(xí)都是深度學(xué)習(xí)。通常,您的模型由scikit-learn中實現(xiàn)的更傳統(tǒng)的算法(例如,Random Forest)組成,或者您使用諸如流行的LightGBM和XGBoost之類的梯度增強(qiáng)方法。

但是,深度學(xué)習(xí)領(lǐng)域正在發(fā)生許多進(jìn)步。像PyTorch這樣的框架正在以驚人的速度發(fā)展,并且硬件設(shè)備已經(jīng)過優(yōu)化,可以更快地運(yùn)行張量計算并降低功耗。如果我們可以利用所有這些工作來更快、更高效地運(yùn)行傳統(tǒng)方法,那豈不是很好嗎?

這是Hummingbird的用武之地。微軟提供的這個新庫可以將訓(xùn)練有素的傳統(tǒng)ML模型編譯為張量計算。這很棒,因為它使您無需重新設(shè)計模型。

到目前為止,Hummingbird支持轉(zhuǎn)換為PyTorch,TorchScript,ONNX和TVM,以及各種ML模型和矢量化器。推理API也與Sklearn范例非常相似,可讓您重用現(xiàn)有代碼,但將實現(xiàn)更改為Hummingbird生成的代碼。這是一個值得關(guān)注的工具,因為它獲得了對模式模型和格式的支持!

9. HiPlot

幾乎每個數(shù)據(jù)科學(xué)家在職業(yè)生涯中的某個時候都曾處理過高維數(shù)據(jù)。不幸的是,人腦沒有足夠的連線直觀地處理這種數(shù)據(jù),因此我們必須訴諸其他技術(shù)。

今年初,F(xiàn)acebook發(fā)布了HiPlot,這是一個庫,可使用并行繪圖和其他圖形方式來表示信息,從而幫助發(fā)現(xiàn)高維數(shù)據(jù)中的相關(guān)性和模式。該概念已在其發(fā)布博客文章中進(jìn)行了解釋,但基本上,它是一種可視化和過濾高維數(shù)據(jù)的好方法。

HiPlot具有交互性,可擴(kuò)展性,您可以從標(biāo)準(zhǔn)Jupyter筆記本電腦或通過其自己的服務(wù)器使用它。

10. Scalene

隨著Python庫生態(tài)系統(tǒng)變得越來越復(fù)雜,我們發(fā)現(xiàn)自己正在編寫越來越多的依賴C擴(kuò)展和多線程的代碼。在衡量性能時,這成為一個問題,因為CPython內(nèi)置的探查器無法正確處理多線程和本機(jī)代碼。

那就是Scalene進(jìn)行救援的時候。Scalene是用于Python腳本的CPU和內(nèi)存探查器,能夠正確處理多線程代碼并區(qū)分運(yùn)行Python和本機(jī)代碼所花費的時間。無需修改代碼,只需要在命令行中使用scalene運(yùn)行腳本,腳本就會為您生成文本或HTML報告,顯示代碼每一行的CPU和內(nèi)存使用情況。



0 人點贊