天天看點

【盤點】深度學習最常用到的20個Python庫

核心庫與統計

NumPy

我們從科學應用程式庫開始說起,NumPy是該領域的主要軟體包之一。 它旨在處理大型多元數組和矩陣,并且廣泛的進階數學函數和實作的方法集合,使得可以使用這些對象執行各種操作。

在這一年中,NumPy有很多更新。 除了錯誤修複和相容性問題之外,關鍵更新還包括NumPy對象的列印格式。此外,某些函數現在可以處理Python中可用的任何編碼的檔案。

SciPy

另一個科學計算核心庫是SciPy。它基于NumPy,并擴充了其功能。 SciPy主資料結構又是一個多元數組,由Numpy實作。該軟體包包含有助于解決線性代數,機率論,積分計算和更多任務的工具。

SciPy可以适配不同的作業系統。這一年,Scipy帶來了許多函數的更新,尤其是優化器也更新了。此外,封裝了許多新的BLAS和LAPACK函數。

Pandas

Pandas提供了進階資料結構和各種分析工具。該軟體包的一大特色是能夠将相當複雜的資料操作轉換為一個或兩個指令。 Pandas包含許多用于分組,過濾群組合資料的内置方法,以及時間序列功能。

Pandas在這一年的更新包括數百個新功能,bug修複和API的更改。

StatsModels

Statsmodels是一個統用于統計資料分析的方法,例如統計模型估計,執行統計測試等。在它的幫助下,您可以實作許多機器學習方法。

這個庫在不停的更新。今年帶來了時間序列改進和新的計數模型,即GeneralizedPoisson,零膨脹模型和NegativeBinomialP,以及新的多變量方法 - 因子分析,MANOVA和ANOVA中的重複測量。

可視化

Matplotlib

Matplotlib是一個用于建立二維圖表和圖形的低級庫。 借助它的幫助,您可以建構各種圖表,從直方圖和散點圖到非笛卡爾坐标圖。 此外,許多流行的繪圖庫被設計為與matplotlib一起使用。

顔色,尺寸,字型,圖例的樣式等都有變化。比如軸圖例的自動對齊,和更友好的配色。

【盤點】深度學習最常用到的20個Python庫

Seaborn

Seaborn本質上是基于matplotlib庫的更進階别的API。 它包含有豐富的可視化圖庫,包括時間序列,聯合圖和小提琴圖(展示資料密度分布)等複雜類型。

seaborn更新主要包括bug修複。 此外,FacetGrid或PairGrid與增強的互動式matplotlib後端之間的相容性有所改進,為可視化添加了參數和選項。

【盤點】深度學習最常用到的20個Python庫

Plotly

Plotly是一個流行的庫,可以讓您輕松地建構複雜的圖形。 該軟體包适用于互動式Web應用程式。 其可視化效果包括輪廓圖形,三元圖和3D圖表。

今年該庫的更新包括對“多連結視圖”以及動畫和串擾內建的支援。

Bokeh

Bokeh庫使用JavaScript小部件在浏覽器中建立互動式和可伸縮的可視化。 該庫提供了多種圖形,樣式及連結圖形式的互動能力,定義回調以及更多有用的功能。

Bokeh可以提供改進的互動式功能,例如分類刻度标簽的旋轉,以及小縮放工具和自定義工具提示字段增強功能。

【盤點】深度學習最常用到的20個Python庫

Pydot

Pydot是Graphviz的一個接口,用純Python編寫。 在它的幫助下,可以顯示圖形的結構,這在建構神經網絡和基于決策樹的算法時會經常用到。

【盤點】深度學習最常用到的20個Python庫

機器學習

Scikit-learn

這個基于NumPy和SciPy的Python子產品是處理資料的最佳庫之一。它為許多标準機器學習和資料挖掘任務提供算法,例如聚類,回歸,分類,降維和模型選擇。

今年這個庫的更新包括:修改交叉驗證,提供了使用多個名額的功能;最近鄰和邏輯回歸等幾種訓練方法有一些小的改進。

XGBoost / LightGBM / CatBoost

Boosting是最流行的機器學習算法之一,其在于建構基本模型的集合,即決策樹。是以,有專門的庫設計用于快速友善地實作該方法。XGBoost,LightGBM和CatBoost值得特别關注。這些庫提供高度優化,可擴充和快速的梯度增強實作,這使得它們在資料科學家和Kaggle競賽中非常受歡迎。

Eli5

通常,機器學習模型預測的結果并不完全清楚,而eli5庫有助與解決問題。它是一個可視化調試機器學習模型的包,并逐漸跟蹤算法的工作過程。它可與scikit-learn,XGBoost,LightGBM,lightning和sklearn-crfsuite庫相容。

深度學習

TensorFlow

TensorFlow是一個流行的深度和機器學習架構,由Google Brain開發。它提供了使用具有多個資料集的人工神經網絡的能力。最受歡迎的TensorFlow應用包括對象識别,語音識别等。

這個庫在新版本中很快,引入了新功能和新功能。最新的修複包括潛在的安全漏洞和改進的TensorFlow和GPU內建,例如您可以在一台計算機上的多個GPU上運作Estimator模型。

PyTorch

PyTorch是一個大型架構,允許使用GPU加速執行張量計算,建立動态計算圖并自動計算梯度。在此之上,PyTorch提供了豐富的API,用于解決與神經網絡相關的應用。

該庫基于Torch,這是一個用C語言實作的開源深度學習庫,在Lua中有一個包裝器。 Python API于2017年推出,從那時起,該架構越來越受歡迎并吸引了越來越多的資料科學家。

Keras

Keras是一個用于處理神經網絡的進階庫,運作在TensorFlow,Theano之上。現在它也可以使用CNTK和MxNet作為後端。它簡化了許多特定任務,并大大減少了單調代碼的數量。但是,它可能不适合某些複雜的事情。

該庫在性能,可用性,文檔和API都有一定改進。一些新功能是Conv3DTranspose層,新的MobileNet應用程式和自我規範化網絡。

分布式深度學習

Dist-keras / elephas / spark-deep-learning

使用像Apache Spark這樣的分布式計算系統可以更輕松地處理如此大量的資料,這再次擴充了深度學習的可能性。是以,dist-keras,elephas和spark-deep-learning正在迅速發展。這些軟體包可以在Apache Spark的幫助下直接基于Keras庫訓練神經網絡。 Spark-deep-learning還提供了使用Python神經網絡建立管道的工具。

自然語言處理

NLTK

NLTK是一組庫,是自然語言處理的完整平台。 在NLTK的幫助下,您可以通過各種方式處理和分析文本,标記文本,提取資訊等。NLTK還用于原型設計和建構研究系統。

這個庫的附魔包括API和相容性的微小變化以及CoreNLP的新界面。

SpaCy

SpaCy是一個自然語言處理庫,包含優秀的demo,API文檔和示範應用程式。該庫是用Cython語言編寫的,它是Python的C擴充。它支援近30種語言,提供簡單的深度學習內建,并保證了穩健性和高準确性。 SpaCy的另一個重要特性它是為整個文檔處理而設計的,而不會将文檔分成短語。

Gensim

Gensim是一個用于強大語義分析,主題模組化和向量空間模組化的Python庫,基于Numpy和Scipy建構。它提供了流行的NLP算法的實作,例如word2vec。

資料抓取

Scrapy

Scrapy是一個用于建立掃描網站頁面和收集結構化資料的爬蟲庫。此外,Scrapy可以從API中提取資料。由于其可擴充性和可移植性,該庫恰好非常友善。

結論

與去年相比,一些新的庫越來越受歡迎,而那些已成為資料科學任務經典庫正在不斷改進。

表格中列出了這些庫的github活動的詳細統計資訊。

【盤點】深度學習最常用到的20個Python庫

原文釋出時間為:2018-09-29

本文來自雲栖社群合作夥伴“

專知

”,了解相關資訊可以關注“

”。