(點選上方公眾號,可快速關註)
英文:ActiveWizards
翻譯:AI科技大本營(公眾號ID:rgznai100)/婉清
Python 在解決資料科學任務和挑戰方面繼續處於領先地位。去年,我們曾發表一篇部落格文章 Top 15 Python Libraries for Data Science in 2017,概述了當時業已證明最有幫助的Python庫。今年,我們擴充套件了這個清單,增加了新的Python庫,並重新審視了去年已經討論過的 Python 庫,重點關註了這一年來的更新。
我們的選擇實際上包含了 20 多個庫,因為其中一些庫是相互替代的,可以解決相同的問題。因此,我們將它們放在同一個分組。
核心庫和統計資料
1. NumPy (Commits: 17911, Contributors: 641)
官網:http://www.numpy.org/
NumPy 是科學應用程式庫的主要軟體包之一,用於處理大型多維陣列和矩陣,它大量的高階數學函式集合和實現方法使得這些物件執行操作成為可能。
2. SciPy (Commits: 19150, Contributors: 608)
官網:https://scipy.org/scipylib/
科學計算的另一個核心庫是 SciPy。它基於 NumPy,其功能也因此得到了擴充套件。SciPy 主資料結構又是一個多維陣列,由 Numpy 實現。這個軟體包包含了幫助解決線性代數、機率論、積分計算和許多其他任務的工具。此外,SciPy 還封裝了許多新的 BLAS 和 LAPACK 函式。
3. Pandas (Commits: 17144, Contributors: 1165)
官網:https://pandas.pydata.org/
Pandas 是一個 Python 庫,提供高階的資料結構和各種各樣的分析工具。這個軟體包的主要特點是能夠將相當複雜的資料操作轉換為一兩個命令。Pandas包含許多用於分組、過濾和組合資料的內建方法,以及時間序列功能。
4. StatsModels (Commits: 10067, Contributors: 153)
官網:http://www.statsmodels.org/devel/
Statsmodels 是一個 Python 模組,它為統計資料分析提供了許多機會,例如統計模型估計、執行統計測試等。在它的幫助下,你可以實現許多機器學習方法並探索不同的繪圖可能性。
Python 庫不斷發展,不斷豐富新的機遇。因此,今年出現了時間序列的改進和新的計數模型,即 GeneralizedPoisson、零膨脹模型(zero inflated models)和 NegativeBinomialP,以及新的多元方法:因子分析、多元方差分析以及方差分析中的重覆測量。
視覺化
5. Matplotlib (Commits: 25747, Contributors: 725)
官網:https://matplotlib.org/index.html
Matplotlib 是一個用於建立二維圖和圖形的底層庫。藉由它的幫助,你可以構建各種不同的圖示,從直方圖和散點圖到費笛卡爾坐標圖。此外,有許多流行的繪相簿被設計為與matplotlib結合使用。
6. Seaborn (Commits: 2044, Contributors: 83)
官網:https://seaborn.pydata.org/
Seaborn 本質上是一個基於 matplotlib 庫的高階 API。它包含更適合處理圖表的預設設定。此外,還有豐富的視覺化庫,包括一些複雜型別,如時間序列、聯合分佈圖(jointplots)和小提琴圖(violin diagrams)。
7. Plotly (Commits: 2906, Contributors: 48)
官網:https://plot.ly/python/
Plotly 是一個流行的庫,它可以讓你輕鬆構建複雜的圖形。該軟體包適用於互動式 Web 應用程,可實現輪廓圖、三元圖和三維圖等視覺效果。
8. Bokeh (Commits: 16983, Contributors: 294)
官網:https://bokeh.pydata.org/en/latest/
Bokeh 庫使用 JavaScript 小部件在瀏覽器中建立互動式和可縮放的視覺化。該庫提供了多種圖表集合,樣式可能性(styling possibilities),連結圖、新增小部件和定義回呼等形式的互動能力,以及許多更有用的特性。
9. Pydot (Commits: 169, Contributors: 12)
官網:https://pypi.org/project/pydot/
Pydot 是一個用於生成複雜的定向圖和無向圖的庫。它是用純 Python 編寫的Graphviz 介面。在它的幫助下,可以顯示圖形的結構,這在構建神經網路和基於決策樹的演演算法時經常用到。
機器學習
10. Scikit-learn (Commits: 22753, Contributors: 1084)
官網:http://scikit-learn.org/stable/
這個基於 NumPy 和 SciPy 的 Python 模組是處理資料的最佳庫之一。它為許多標準的機器學習和資料挖掘任務提供演演算法,如聚類、回歸、分類、降維和模型選擇。
利用 Data Science School 提高你的技能
Data Science School:http://datascience-school.com/
11. XGBoost / LightGBM / CatBoost (Commits: 3277 / 1083 / 1509, Contributors: 280 / 79 / 61)
官網:
http://xgboost.readthedocs.io/en/latest/http://lightgbm.readthedocs.io/en/latest/Python-Intro.htmlhttps://github.com/catboost/catboost
梯度增強演演算法是最流行的機器學習演演算法之一,它是建立一個不斷改進的基本模型,即決策樹。因此,為了快速、方便地實現這個方法而設計了專門庫。就是說,我們認為 XGBoost、LightGBM 和 CatBoost 值得特別關註。它們都是解決常見問題的競爭者,並且使用方式幾乎相同。這些庫提供了高度最佳化的、可擴充套件的、快速的梯度增強實現,這使得它們在資料科學家和 Kaggle 競爭對手中非常流行,因為在這些演演算法的幫助下贏得了許多比賽。
12. Eli5 (Commits: 922, Contributors: 6)
官網:https://eli5.readthedocs.io/en/latest/
通常情況下,機器學習模型預測的結果並不完全清楚,這正是 Eli5 幫助應對的挑戰。它是一個用於視覺化和除錯機器學習模型並逐步跟蹤演演算法工作的軟體包,為 scikit-learn、XGBoost、LightGBM、lightning 和 sklearn-crfsuite 庫提供支援,併為每個庫執行不同的任務。
深度學習
13. TensorFlow (Commits: 33339, Contributors: 1469)
官網:https://www.tensorflow.org/
TensorFlow 是一個流行的深度學習和機器學習框架,由 Google Brain 開發。它提供了使用具有多個資料集的人工神經網路的能力。在最流行的 TensorFlow應用中有標的識別、語音識別等。在常規的 TensorFlow 上也有不同的 leyer-helper,如 tflearn、tf-slim、skflow 等。
14. PyTorch (Commits: 11306, Contributors: 635)
官網:https://pytorch.org/
PyTorch 是一個大型框架,它允許使用 GPU 加速執行張量計算,建立動態計算圖並自動計算梯度。在此之上,PyTorch 為解決與神經網路相關的應用程式提供了豐富的 API。該庫基於 Torch,是用 C 實現的開源深度學習庫。
15. Keras (Commits: 4539, Contributors: 671)
官網:https://keras.io/
Keras 是一個用於處理神經網路的高階庫,執行在 TensorFlow、Theano 之上,現在由於新版本的釋出,還可以使用 CNTK 和 MxNet 作為後端。它簡化了許多特定的任務,並且大大減少了單調程式碼的數量。然而,它可能不適合某些複雜的任務。
分散式深度學習
16. Dist-keras / elephas / spark-deep-learning (Commits: 1125 / 170 / 67, Contributors: 5 / 13 / 11)
官網:
http://joerihermans.com/work/distributed-keras/https://pypi.org/project/elephas/https://databricks.github.io/spark-deep-learning/site/index.html
隨著越來越多的用例需要花費大量的精力和時間,深度學習問題變得越來越重要。然而,使用像 Apache Spark 這樣的分散式計算系統,處理如此多的資料要容易得多,這再次擴充套件了深入學習的可能性。因此,dist-keras、elephas 和 spark-deep-learning 都在迅速流行和發展,而且很難挑出一個庫,因為它們都是為解決共同的任務而設計的。這些包允許你在 Apache Spark 的幫助下直接訓練基於 Keras 庫的神經網路。Spark-deep-learning 還提供了使用 Python 神經網路建立管道的工具。
自然語言處理
17. NLTK (Commits: 13041, Contributors: 236)
官網:https://www.nltk.org/
NLTK 是一組庫,一個用於自然語言處理的完整平臺。在 NLTK 的幫助下,你可以以各種方式處理和分析文字,對文字進行標記和標記,提取資訊等。NLTK 也用於原型設計和建立研究系統。
18. SpaCy (Commits: 8623, Contributors: 215)
官網:https://spacy.io/
SpaCy 是一個具有優秀示例、API 檔案和演示應用程式的自然語言處理庫。這個庫是用 Cython 語言編寫的,Cython 是 Python 的 C 擴充套件。它支援近 30 種語言,提供了簡單的深度學習整合,保證了健壯性和高準確率。SpaCy 的另一個重要特性是專為整個檔案處理設計的體系結構,無須將檔案分解成短語。
19. Gensim (Commits: 3603, Contributors: 273)
官網:https://radimrehurek.com/gensim/
Gensim 是一個用於健壯語意分析、主題建模和向量空間建模的 Python 庫,構建在Numpy和Scipy之上。它提供了流行的NLP演演算法的實現,如 word2vec。儘管 gensim 有自己的 models.wrappers.fasttext實現,但 fasttext 庫也可以用來高效學習詞語表示。
資料採集
20. Scrapy (Commits: 6625, Contributors: 281)
官網:https://scrapy.org/
Scrapy 是一個用來建立網路爬蟲,掃描網頁和收集結構化資料的庫。此外,Scrapy 可以從 API 中提取資料。由於該庫的可擴充套件性和可移植性,使得它用起來非常方便。
結論
本文上述所列就是我們在 2018 年為資料科學領域中豐富的 Python 庫集合。與上一年相比,一些新的現代庫越來越受歡迎,而那些已經成為經典的資料科學任務的庫也在不斷改進。
下表顯示了 GitHub 活動的詳細統計資料:
看完本文有收穫?請轉發分享給更多人
關註「資料分析與開發」,提升資料技能