為了方便學習,本文列出的20個Python庫將按領域進行分類,有些你可能并不熟悉,但是真的能提高你的模型算法實現效率,多一點嘗試,多一些努力!
核心庫和統計數據
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.html
https://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 活動的詳細統計數據:
編輯:hfy
評論
查看更多