操bb国片四区三区,亚洲一片内射无码,91短视频福利导航,蜜桃臀成人免费在线视频观看

2020年10個不錯的Python庫

2021-11-03 15:35:11 shuai.chang


這是第六屆年度 Python 庫排行榜。這個排行榜的依據(jù)是什么?規(guī)則很簡單。我們尋找的庫需要滿足下列條件:

  1. 它們是在 2020 年推出或普及的。

  2. 它們從發(fā)布后就一直有良好的維護。

  3. 它們非常炫酷,很值得一看。

免責聲明:今年,我們的選擇受到機器學習 / 數(shù)據(jù)科學庫的極大影響,雖然有些庫對非數(shù)據(jù)科學家來說確實很有用。另外,盡管我們有 10 個主要的精選(以及一個獎勵),但我們還是決定增加一個新的“榮譽提名”部分,以便公平對待我們發(fā)現(xiàn)但又不能遺漏的其他庫。

1.Typer

睿智創(chuàng)新RAIZ,一體化IT服務提供商

你不必總是要編寫 CLI 應用程序,但是在編寫 CLI 時,最好是無障礙的體驗。繼 FastAPI 巨大成功之后,Sebastián Ramírez 用同樣的原則為我們帶來了 Typer:一個新的庫,通過利用 Python 3.6+ 的類型提示功能,可以編寫命令行界面。

這個設計確實使 Typer 脫穎而出。除確保你的代碼被正確地記錄下來外,你還可以通過最少的努力來獲得一個帶有驗證的 CLI 接口。使用類型提示,你可以在 Python 編輯器中獲得自動完成功能(比如 VSCode),從而提高工作效率。

為增強 Typer 功能,它的內(nèi)部是基于 Click 開發(fā)的,Click 是非常著名的,并且已經(jīng)通過了實戰(zhàn)檢驗。這意味著,它可以利用其所有的優(yōu)點、社區(qū)和插件,同時用較少的樣板代碼從簡單的開始,并在需要時添加更多的復雜性。

一如既往,它的文檔真的很出色,可以作為其他項目的典范。這絕對是不容錯過的作品。

GitHub 項目地址:https://github.com/tiangolo/typer

2. Rich

接著 CLI 的話題,誰說終端應用程序必須是單調(diào)的白色,如果你是一個真正的 hacker,就必須是綠色的?那黑色呢?

你想為你的終端輸出加上顏色和樣式嗎?在一瞬間打開復雜的表格?輕松地展示華麗的進度條?Markdown?Emojis?Rich 都能滿足你的要求。請看下面的截圖,來了解一下它的功能。

睿智創(chuàng)新RAIZ,一體化IT服務提供商

毫無疑問,這個庫將終端應用的使用體驗提高到了一個全新的水平。

GitHub 項目地址:https://github.com/willmcgugan/rich

3. Dear PyGui

就像我們看到的那樣,終端應用可以做到很華麗,但有時候這還不夠,你需要一個真正的 GUI。為此,Dear PyGui 應運而生,它是流行的 Dear ImGui C++ 項目的 Python 移植。

Dear PyGui 使用了一種被稱為即時模式的范例,它在電子游戲中很流行。這基本上意味著動態(tài) GUI 是逐幀獨立繪制的,無需持久化任何數(shù)據(jù)。這樣,這個工具與其他 Python GUI 框架就有了本質(zhì)上的區(qū)別。它性能優(yōu)異,并用計算機的 GPU 來促進高動態(tài)界面的構(gòu)建,這在工程、模擬、游戲或數(shù)據(jù)科學應用中是經(jīng)常需要的。

睿智創(chuàng)新RAIZ,一體化IT服務提供商

不需要非常陡峭的學習曲線,Dear PyGui 就能使用,并且可以在 Windows 10(DirectX 11)、Linux(OpenGL 3)和 MacOS(Metal)上運行。

GitHub 項目地址:https://github.com/hoffstadt/DearPyGui

4. PrettyErrors

簡單的樂趣。這是讓你思考的庫之一:為什么以前沒有人想到這個問題?

PrettyErrors 只做一件事,而且做到了極致。在支持彩色輸出的終端中,它將隱秘的棧跟蹤轉(zhuǎn)換為更適合人類眼睛解析的東西。再也不用掃描整個屏幕來尋找異常的罪魁禍首了……現(xiàn)在,你就可以一眼發(fā)現(xiàn)它!

睿智創(chuàng)新RAIZ,一體化IT服務提供商

GitHub 項目地址:https://github.com/onelivesleft/PrettyErrors

5. Diagrams

我們程序員喜歡解決問題和編碼。但是有時候,我們需要把復雜的架構(gòu)設計作為項目文檔的一部分來向其他同事解釋。傳統(tǒng)上,我們會求助于 GUI 工具,通過這種方式,我們就可以在圖表和可視化方面做一些努力,并將其用于演示和文檔。但是,這種方式并非唯一。

通過直接在 Python 代碼中繪制云系統(tǒng)架構(gòu), Diagrams 允許你不使用任何設計工具。AWS、 Azure、 GCP 等多個云供應商都可以輕松地使用它的一些圖標。這使得創(chuàng)建箭頭和組變得非常簡單。真的,它只有幾行代碼!

睿智創(chuàng)新RAIZ,一體化IT服務提供商

基于代碼的 Diagrams 最好的地方是什么?通過標準 git,你可以跟蹤版本控制的更改!開發(fā)人員將會非常高興。

GitHub 項目地址:https://github.com/mingrammer/diagrams

6. Hydra 與 OmegaConf

當進行機器學習項目的研究和實驗時,總是有無數(shù)的設置需要嘗試。配置管理可以變得非常復雜,并且在重要的應用程序中非常快速。要是能找到處理這類復雜問題的結(jié)構(gòu)方法該多好啊。

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

為了說明使用該庫所能簡化的一些常見任務,假設我們正在實驗的模型有一個基礎架構(gòu),并且有多種變體。通過 Hydra,就可以定義一個基礎配置,然后使用它們的變體運行多個作業(yè)。

python train_model.py variation=option_a,option_b

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

它們是 21 世紀進行配置管理的必備之選。

7. PyTorch Lightning

任何能夠提高數(shù)據(jù)科學團隊生產(chǎn)力的工具都是價值連城。從事數(shù)據(jù)科學項目的人沒有理由每次都要“重新發(fā)明輪子”,反復思考怎樣才能更好地組織項目中的代碼,怎樣才能使用維護得不好的“PyTorch 樣本代碼”,怎樣才能用潛在的控制來換取更高層次的抽象。

Lightning 通過將科學與工程脫鉤來幫助提高生產(chǎn)力。這有點像 TensorFlow 的 Keras,從某種程度上說,這可以讓代碼更簡潔。但這并不會剝奪你的控制權(quán)。PyTorch 仍然是 PyTorch,可以使用常用 API。

這個庫可以幫助團隊利用軟件工程的良好實踐,組織組件并明確職責,構(gòu)建高質(zhì)量的代碼,從而方便地擴展到多個 GPU、 TPU 和 CPU 進行訓練。

睿智創(chuàng)新RAIZ,一體化IT服務提供商

一個庫,可以幫助數(shù)據(jù)科學團隊中那些初級成員產(chǎn)生更好的結(jié)果,同時,更有經(jīng)驗的成員也會喜歡它,因為它可以在不放棄控制權(quán)的情況下,提高整體生產(chǎn)力。

GitHub 項目地址:

https://github.com/PyTorchLightning/PyTorch-lightning

8. Hummingbird

睿智創(chuàng)新RAIZ,一體化IT服務提供商

并非所有的機器學習都是深度學習。很多時候,你的模型由 scikit-learn 中實現(xiàn)的比較傳統(tǒng)的算法組成(比如隨機森林),或者你使用梯度提升方法,比如流行的 LightGBM 和 XGBoost。

但是,在深度學習領域,已經(jīng)有了許多進展。諸如 PyTorch 這樣的框架正在以驚人的速度發(fā)展,硬件設備也在優(yōu)化,以更快的速度進行更低功耗的張量計算。如果我們能夠利用這些努力,使我們的傳統(tǒng)方法運行得更快更有效,豈不美哉?

這就是 Hummingbird 的用武之地。Microsoft 的這個新庫可以將你訓練好的傳統(tǒng)機器學習模型編譯成張量計算。這樣做非常好,因為這樣就無需重新設計模型。

截至目前,Hummingbird 支持向 PyTorch、TorchScript、ONNX 和 TVM,以及各種機器學習模型和矢量器的轉(zhuǎn)換。推理 API 也非常類似于 Sklearn 范式,它可以讓你重用現(xiàn)有的代碼,但是將實現(xiàn)改為由 Hummingbird 生成。這是一個值得關(guān)注的工具,因為它獲得了對模式模型和格式的支持!

GitHub 項目地址:

https://github.com/microsoft/hummingbird

9. HiPlot

幾乎每一位數(shù)據(jù)科學家在其職業(yè)生涯中都會在某些時候處理高維數(shù)據(jù)。遺憾的是,人類的大腦并沒有足夠的能力來直觀地處理這類數(shù)據(jù),所以我們必須借助其他技術(shù)。

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

睿智創(chuàng)新RAIZ,一體化IT服務提供商

HiPlot 是交互式的、可擴展的,你可以在標準 Jupyter Notebooks 中使用 HiPlot,也可以通過自己的服務器來使用 HiPlot。

GitHub 項目地址:

https://github.com/facebookresearch/hiplot

10. Scalene

隨著 Python 庫的生態(tài)系統(tǒng)越來越復雜,我們發(fā)現(xiàn)自己編寫的代碼越來越依賴于 C 擴展和多線程代碼。當涉及到測量性能時,這會成為一個問題,因為 CPython 中內(nèi)置的分析器不能正確處理多線程代碼和原生代碼。

這時,Scalene 就來救場了。Scalene 是一個 CPU 和內(nèi)存分析器,它針對 Python 腳本,能夠正確地處理多線程代碼,并區(qū)分運行 Python 與原生代碼所花費的時間。無需修改代碼,只需要用 Scalene 從命令行運行你的腳本,它就會為你生成一個文本或 HTML 報告,顯示每行代碼的 CPU 和內(nèi)存使用情況。

睿智創(chuàng)新RAIZ,一體化IT服務提供商

GitHub 項目地址:https://github.com/emeryberger/scalene

額外獎勵:Norfair

Norfair 是一個可定制的輕量級 Python 庫,用于實時對象跟蹤。換句話來說,它為每一個被檢測到的物體在不同的幀中分配了一個唯一的 id,允許你在它們隨時間移動的過程中識別它們。有了 Norfair,只需要幾行代碼就可以為任何探測器添加跟蹤功能?!叭魏翁綔y器”?是的。無論對象的表現(xiàn)形式是什么樣的:一個包圍盒(4 個坐標),一個單點中心點,人體姿態(tài)估計系統(tǒng)的輸出,或其他具有一定概率閾值以上變量的關(guān)鍵點的物體。

用于計算被跟蹤物體與檢測點之間距離的函數(shù)由用戶定義,如果你需要,完全可以自定義。

它的速度也很快,而且可以實時操作。然而,真正的優(yōu)勢在于它是非常模塊化的,你可以利用你現(xiàn)有的檢測代碼庫,只需幾行代碼即可添加跟蹤功能。

GitHub 項目地址:https://github.com/tryolabs/norfair

榮譽提名

quart:一個具有 Flask 兼容 API 的異步網(wǎng)絡框架。一些現(xiàn)有的 Flask 擴展甚至可以工作。

alibi-detect:監(jiān)控生產(chǎn)模型中的異常值和分布漂移,適用于表格數(shù)據(jù)、文本、圖像和時間序列。

einops:einops 在 2020 年普及,可以讓你為可讀和可靠的代碼編寫張量操作,支持 NumPy、PyTorch、TensorFlow 等。Karpathy 推薦的,你還需要什么嗎?

stanza:來自斯坦福的 60 多種語言的精確自然語言處理工具。多種可用的預訓練模型用于不同的任務。

datasets:來自 HuggingFace 的輕量級可擴展庫,可輕松共享和訪問數(shù)據(jù)集,以及用于自然語言處理等評估指標。

pytorch-forecasting:在現(xiàn)實世界的案例和研究中,利用神經(jīng)網(wǎng)絡簡化時間序列預測。

sktime:提供專門的時間序列算法和 scikit-learn 兼容工具,用于構(gòu)建、調(diào)整和評估復合模型。也可以查看他們的配套 sktime-dl 包,用于基于深度學習的模型。

netron:一個用于神經(jīng)網(wǎng)絡、深度學習和機器學習模型的可視化工具。支持的格式比我所知道的還要多。

pycaret:封裝了幾個常見的機器學習庫,使工作效率大大提高,并節(jié)省了數(shù)百行代碼。

tensor-sensor:通過改進錯誤信息和提供可視化,幫助你獲得張量數(shù)學的正確維度。


我要咨詢