【導讀】Python在解決數據科學任務和挑戰方面處于領先地位。而一些方便易用的庫則幫助了開發人員高效開發。在這里我們整理了20個在深度學習、數據分析中最常用、最好用的Python庫,供大家一起學習。
編譯|專知
整理|Yingying,李大囧
核心庫與統計
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一起使用。
顏色,尺寸,字體,圖例的樣式等都有變化。比如軸圖例的自動對齊,和更友好的配色。
Seaborn
Seaborn本質上是基于matplotlib庫的更高級別的API。 它包含有豐富的可視化圖庫,包括時間序列,聯合圖和小提琴圖(展示數據密度分布)等復雜類型。
seaborn更新主要包括bug修復。 此外,FacetGrid或PairGrid與增強的交互式matplotlib后端之間的兼容性有所改進,為可視化添加了參數和選項。
Plotly
Plotly是一個流行的庫,可以讓您輕松地構建復雜的圖形。 該軟件包適用于交互式Web應用程序。 其可視化效果包括輪廓圖形,三元圖和3D圖表。
今年該庫的更新包括對“多鏈接視圖”以及動畫和串擾集成的支持。
Bokeh
Bokeh庫使用JavaScript小部件在瀏覽器中創建交互式和可伸縮的可視化。 該庫提供了多種圖形,樣式及鏈接圖形式的交互能力,定義回調以及更多有用的功能。
Bokeh可以提供改進的交互式功能,例如分類刻度標簽的旋轉,以及小縮放工具和自定義工具提示字段增強功能。
Scikit-learn
這個基于NumPy和SciPy的Python模塊是處理數據的最佳庫之一。它為許多標準機器學習和數據挖掘任務提供算法,例如聚類,回歸,分類,降維和模型選擇。
今年這個庫的更新包括:修改交叉驗證,提供了使用多個指標的功能;最近鄰和邏輯回歸等幾種訓練方法有一些小的改進。
XGBoost / LightGBM / CatBoost
Boosting是最流行的機器學習算法之一,其在于構建基本模型的集合,即決策樹。因此,有專門的庫設計用于快速方便地實現該方法。XGBoost,LightGBM和CatBoost值得特別關注。這些庫提供高度優化,可擴展和快速的梯度增強實現,這使得它們在數據科學家和Kaggle競賽中非常受歡迎。
Eli5
通常,機器學習模型預測的結果并不完全清楚,而eli5庫有助與解決問題。它是一個可視化調試機器學習模型的包,并逐步跟蹤算法的工作過程。它可與scikit-learn,XGBoost,LightGBM,lightning和sklearn-crfsuite庫兼容。
深度學習
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活動的詳細統計信息。
編輯:hfy
-
python
+關注
關注
56文章
4792瀏覽量
84628 -
深度學習
+關注
關注
73文章
5500瀏覽量
121113 -
自然語言處理
+關注
關注
1文章
618瀏覽量
13552
發布評論請先 登錄
相關推薦
評論