Python 在解決資料科學任務和挑戰方面繼續處于領先地位。
目錄
核心庫
IPython
NumPy
SciPy
Pandas
StatsModels
可視化
Matplotlib
Seaborn
Plotly
Bokeh
Pydot
機器學習
Scikit-learn
XGBoost / LightGBM / CatBoost
Eli5
深度學習
TensorFlow
PyTorch
Keras
分布式深度學習
Dist-keras / elephas / spark-deep-learning
自然語言處理
NLTK
SpaCy
Gensim
資料采集
Scrapy
計算機視覺
OpenCV
生物
BioPython
化學
RDKit
官網:
http://ipython.org/ 增強的互動環境:支援變量自動補全,自動縮進,支援 bash shell 指令,内置了許多很有用的功能和函數。
NumPy
http://www.numpy.org/NumPy 是科學應用程式庫的主要軟體包之一,用于處理大型多元數組和矩陣,它大量的進階數學函數集合和實作方法使得這些對象執行操作成為可能。
科學計算的另一個核心庫是 SciPy。它基于 NumPy,其功能也是以得到了擴充。SciPy 主資料結構又是一個多元數組,由 Numpy 實作。這個軟體包包含了幫助解決線性代數、機率論、積分計算和許多其他任務的工具。此外,SciPy 還封裝了許多新的 BLAS 和 LAPACK 函數。
Pandas 是一個 Python 庫,提供進階的資料結構和各種各樣的分析工具。這個軟體包的主要特點是能夠将相當複雜的資料操作轉換為一兩個指令。Pandas包含許多用于分組、過濾群組合資料的内置方法,以及時間序列功能。
Statsmodels 是一個 Python 子產品,它為統計資料分析提供了許多機會,例如統計模型估計、執行統計測試等。在它的幫助下,你可以實作許多機器學習方法并探索不同的繪圖可能性。
Python 庫不斷發展,不斷豐富新的機遇。是以,今年出現了時間序列的改進和新的計數模型,即 GeneralizedPoisson、零膨脹模型(zero inflated models)和 NegativeBinomialP,以及新的多元方法:因子分析、多元方差分析以及方差分析中的重複測量。
Matplotlib 是一個用于建立二維圖和圖形的底層庫。藉由它的幫助,你可以建構各種不同的圖示,從直方圖和散點圖到費笛卡爾坐标圖。此外,有許多流行的繪圖庫被設計為與matplotlib結合使用。
Seaborn 本質上是一個基于 matplotlib 庫的進階 API。它包含更适合處理圖表的預設設定。此外,還有豐富的可視化庫,包括一些複雜類型,如時間序列、聯合分布圖(jointplots)和小提琴圖(violin diagrams)。
https://plot.ly/python/
Plotly 是一個流行的庫,它可以讓你輕松建構複雜的圖形。該軟體包适用于互動式 Web 應用程,可實作輪廓圖、三元圖和三維圖等視覺效果。
Bokeh 庫使用 JavaScript 小部件在浏覽器中建立互動式和可縮放的可視化。該庫提供了多種圖表集合,樣式可能性(styling possibilities),連結圖、添加小部件和定義回調等形式的互動能力,以及許多更有用的特性。
Pydot 是一個用于生成複雜的定向圖和無向圖的庫。它是用純 Python 編寫的Graphviz 接口。在它的幫助下,可以顯示圖形的結構,這在建構神經網絡和基于決策樹的算法時經常用到。
這個基于 NumPy 和 SciPy 的 Python 子產品是處理資料的最佳庫之一。它為許多标準的機器學習和資料挖掘任務提供算法,如聚類、回歸、分類、降維和模型選擇。
利用 Data Science School 提高你的技能
Data Science School:
http://datascience-school.com/ http://xgboost.readthedocs.io/en/latest/http://lightgbm.readthedocs.io/en/latest/Python-Intro.htmlhttps://github.com/catboost/catboost梯度增強算法是最流行的機器學習算法之一,它是建立一個不斷改進的基本模型,即決策樹。是以,為了快速、友善地實作這個方法而設計了專門庫。就是說,我們認為 XGBoost、LightGBM 和 CatBoost 值得特别關注。它們都是解決常見問題的競争者,并且使用方式幾乎相同。這些庫提供了高度優化的、可擴充的、快速的梯度增強實作,這使得它們在資料科學家和 Kaggle 競争對手中非常流行,因為在這些算法的幫助下赢得了許多比賽。
https://eli5.readthedocs.io/en/latest/通常情況下,機器學習模型預測的結果并不完全清楚,這正是 Eli5 幫助應對的挑戰。它是一個用于可視化和調試機器學習模型并逐漸跟蹤算法工作的軟體包,為 scikit-learn、XGBoost、LightGBM、lightning 和 sklearn-crfsuite 庫提供支援,并為每個庫執行不同的任務。
https://www.tensorflow.org/TensorFlow 是一個流行的深度學習和機器學習架構,由 Google Brain 開發。它提供了使用具有多個資料集的人工神經網絡的能力。在最流行的 TensorFlow應用中有目辨別别、語音識别等。在正常的 TensorFlow 上也有不同的 leyer-helper,如 tflearn、tf-slim、skflow 等。
PyTorch 是一個大型架構,它允許使用 GPU 加速執行張量計算,建立動态計算圖并自動計算梯度。在此之上,PyTorch 為解決與神經網絡相關的應用程式提供了豐富的 API。該庫基于 Torch,是用 C 實作的開源深度學習庫。
Keras 是一個用于處理神經網絡的進階庫,運作在 TensorFlow、Theano 之上,現在由于新版本的釋出,還可以使用 CNTK 和 MxNet 作為後端。它簡化了許多特定的任務,并且大大減少了單調代碼的數量。然而,它可能不适合某些複雜的任務。
随着越來越多的用例需要花費大量的精力和時間,深度學習問題變得越來越重要。然而,使用像 Apache Spark 這樣的分布式計算系統,處理如此多的資料要容易得多,這再次擴充了深入學習的可能性。是以,dist-keras、elephas 和 spark-deep-learning 都在迅速流行和發展,而且很難挑出一個庫,因為它們都是為解決共同的任務而設計的。這些包允許你在 Apache Spark 的幫助下直接訓練基于 Keras 庫的神經網絡。Spark-deep-learning 還提供了使用 Python 神經網絡建立管道的工具。
https://www.nltk.org/NLTK 是一組庫,一個用于自然語言處理的完整平台。在 NLTK 的幫助下,你可以以各種方式處理和分析文本,對文本進行标記和标記,提取資訊等。NLTK 也用于原型設計和建立研究系統。
SpaCy 是一個具有優秀示例、API 文檔和示範應用程式的自然語言處理庫。這個庫是用 Cython 語言編寫的,Cython 是 Python 的 C 擴充。它支援近 30 種語言,提供了簡單的深度學習內建,保證了健壯性和高準确率。SpaCy 的另一個重要特性是專為整個文檔處理設計的體系結構,無須将文檔分解成短語。
Gensim 是一個用于健壯語義分析、主題模組化和向量空間模組化的 Python 庫,建構在Numpy和Scipy之上。它提供了流行的NLP算法的實作,如 word2vec。盡管 gensim 有自己的 models.wrappers.fasttext實作,但 fasttext 庫也可以用來高效學習詞語表示。
Scrapy
https://scrapy.org/Scrapy 是一個用來建立網絡爬蟲,掃描網頁和收集結構化資料的庫。此外,Scrapy 可以從 API 中提取資料。由于該庫的可擴充性和可移植性,使得它用起來非常友善。
計算機視覺
OpenCV是一個C++庫,用于實時處理計算機視覺方面的問題,涵蓋了很多計算機視覺領域的子產品。
OpenCV有兩個Python接口,老版本的cv子產品使用OpenCV内置的資料類型,新版本的cv2子產品使用NumPy數組。
資料科學 | Python資料科學常用庫
http://www.biopython.org Biopython工程是一個使用Python來開發計算分子生物學工具的國際團體。(http://www.python.org) Python是一種面向對象的、解釋型的、靈活的語言,在計算機科學中日益流行。Python易學,文法明晰,并且能很容易的使用以C,C++或 者FORTRAN編寫的子產品實作擴充。
Biopython為使用和研究所學生物資訊學的開發者提供了一個線上的 資源庫,包括子產品、腳本以及一些基于Python的軟體的網站連結。一般來講,Biopython緻力于通過創造高品質的和可重複利用的子產品及 類,進而使得Python在生物資訊學中的應用變得更加容易。Biopython的特點包括解析各種生物資訊學格式的檔案(BLAST, Clustalw, FASTA, Genbank...),通路線上的伺服器(NCBI,Expasy...),常見和不那麼常見程式的接口(Clustalw, DSSP,MSMS...),标準的序列類,各 種收集的子產品,KD樹資料結構等等,還有一些文檔。
RDKit在2000-2006年期間在Rational Discovery開發和使用,用于建構吸收、分布、代謝、代謝、毒性和生物活性的預測模型。2006年6月Rational Discovery被關閉,但該工具包在BSD許可證下作為開源釋出。目前,RDKit的開源開發由諾華積極貢獻,其中包括諾華捐贈的源代碼。
RDKit提供各種功能,如不同的化學I/O格式,包括SMILES/SMARTS,結構資料格式(SDF),Thor資料樹(TDT),Sybyl線符号(SLN),Corina mol2和蛋白質資料庫(PDB)。子結構搜尋; 标準SMILES; 手性支援;化學轉化;化學反應;分子序列化;相似性/多樣性選擇;二維藥效團;分層子圖/片段分析; Bemis和Murcko骨架;逆合成組合分析程式(RECAP); 多分子最大共同亞結構;功能圖;基于形狀的相似性;基于RMSD的分子分子比對;基于形狀的對齊;使用Open3-DALIGN算法的無監督分子-分子比對;與PyMOL進行3D可視化內建;功能組過濾;分子描述符庫;相似圖;機器學習等等