十個基本的Python數據科學軟件包
譯文【51CTO.com快譯】過去五年人們對數據科學的興趣顯著上升。盡管有許多編程語言適合數據科學和機器學習,但Python是最受歡迎的。
由于它是機器學習的首選語言,本文介紹了以Python為中心的十個基本的數據科學軟件包,包括最受歡迎的機器學習軟件包。
Scikit-Learn
Scikit-Learn是一個基于SciPy和NumPy的Python機器學習模塊。它由David Cournapeau開發,起初是谷歌的一個“編程夏天”項目。從那時起,它已發展到20000多人次提交和90多個版本。摩根大通和Spotify等公司將它用于各自的數據科學工作中。
由于Scikit-Learn的學習曲線很平緩,連企業的業務人員也能使用它。比如說,Scikit-Learn官網上的一系列教程(https://scikit-learn.org/stable/auto_examples/index.html#examples-based-on-real-world-datasets)向你展示了如何分析現實世界的數據集。如果你是初學者,想學習機器學習庫,Scikit-Learn就是入門之選。
其要求如下:
- Python 3.5或更高版本
- NumPy 1.11.0或更高
- SciPy 0.17.0或更高
PyTorch
PyTorch擅長兩件事。首先,它使用強大的GPU加速張量計算。其次,它在基于磁帶的autograd系統上構建動態神經網絡,從而允許重用和更高的性能。如果你是學者或工程師,想要簡單易學的軟件包來完成這兩件事,PyTorch是適合你的選擇。
在特定情況下,PyTorch尤為出色。比如,如上所述,你想通過使用GPU更快地計算張量?那就使用PyTorch,因為NumPy無法做到這一點。想使用RNN進行語言處理?那就使用PyTorch,因為它擁有運行時定義的功能?;蛘吣阆胧褂蒙疃葘W習但你只是初學者?那就使用PyTorch,因為Scikit-Learn不適合深度學習。
PyTorch的要求取決于你的操作系統。安裝比Scikit-Learn稍微復雜一些。我建議使用“Get Started”頁面(https://pytorch.org/get-started/locally/)作為指導。它通常需要以下:
- Python 3.6或更高版本
- Conda 4.6.0或更高版本
Caffe
Caffe是最快實現卷積網絡的工具之一,因此非常適合圖像識別。它以處理圖像見長。
賈揚清在加州大學伯克利分校攻讀博士學位時開始開發Caffe。它采用BSD 2-Clause許可證來發布,被譽為是市面上性能最高的深度學習框架之一。據官網稱,Caffe的圖像處理速度相當驚人,聲稱“使用單單一個英偉達K40 GPU每天就可以處理6000余萬個圖像。”
我要強調一點,盡管學習曲線仍然相對平緩,但Caffe假設你至少具備機器學習方面的中級知識。
與PyTorch一樣,要求取決于你的操作系統。在此查看安裝指南(http://caffe.berkeleyvision.org/installation.html)。可以的話,我建議你使用Docker版本,以便馬上可以使用。強制性依賴項如下:
- CUDA for GPU模式(https://developer.nvidia.com/cuda-zone)
- 建議使用庫版本7或更高版本以及最新的驅動程序版本,但6系列版本也很好
- 5.5和5.0版本兼容,但被認為是舊版本
- 通過ATLAS、MKL或OpenBLAS進行BLAS(http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms)
- Boost 1.55或更高版本(http://www.boost.org/)
TensorFlow
由于一些很充分的原因,TensorFlow是最著名的機器學習庫之一。它擅長使用數據流圖進行數值計算。
TensorFlow最初由谷歌Brain開發,是開源的。面對一系列任務,它使用數據流圖和可微分編程,使其成為有史以來最靈活、最強大的機器學習庫之一。
如果你需要快速處理大型數據集,這是不容忽視的庫。
最新的穩定版本是v1.13.1,但新的v2.0現處于beta測試中。
Theano
Theano是最早的用于深度學習開發的開源軟件庫之一,最適合用于高速計算。
雖然Theano宣布在2017年發布v1.0之后停止主要開發,但你仍可以對其進行歷史研究。它之所以躋身本文十大Python數據科學軟件包行列,是由于如果你熟悉它,會大致了解它的創新后來如何演變成了如今你在激烈競爭的庫中看到的功能。
Pandas
Pandas是一個用Python編寫的強大而靈活的數據分析庫。雖然不是嚴格意義上的機器學習庫,但它非常適合用于針對大型數據集的數據分析和處理。尤其是,我喜歡將其用于其數據結構(比如DataFrame)、時間序列操縱和分析以及數字數據表。大企業和初創公司的許多業務員工可以輕松地拿來Pandas進行分析。此外,它非常易于上手,在數據分析功能方面不輸給與之競爭的庫。
如果你想使用Pandas,需要以下:
- Setuptools版本24.2.0或更高版本
- NumPy版本1.12.0或更高版本
- Python dateutil 2.5.0或更高版本
- 用于跨平臺時區計算的pytz
Keras
Keras為快速實驗而設計。它也可以在TensorFlow等其他框架上運行。作為深度學習庫,Keras以輕松快速地制作原型而著稱。
Keras因易于使用的API而在深度學習庫愛好者中備受歡迎。Jeff Hale進行了一番整理,對主要的深度學習框架進行了排名,Keras相比毫不遜色。
Keras的唯一要求是要有三種后端引擎之一:比如TensorFlow、Theano或CNTK。
NumPy
NumPy是使用Python進行科學計算所需的基本軟件包。對于想要一種易于使用的Python庫進行科學計算的研究人員來說,這是很好的選擇。實際上,NumPy正是為此目的設計的。它使數組計算變得容易很多。
最初,NumPy的代碼是SciPy的一部分。然而,需要在工作中使用數組對象的科學家必須安裝龐大的SciPy軟件包。為了避免這種情況,一個新的軟件包與SciPy分開來,名為NumPy。
如果你想使用NumPy,需要Python 2.6.x、2.7.x、3.2.x或更高版本。
Matplotlib
Matplotlib是Python 2D繪圖庫,可輕松創建跨平臺的圖表和圖形。
到目前為止,我們介紹了許多機器學習、深度學習甚至快速計算框架。不過就數據科學而言,你還需要繪制圖形和圖表。談到數據科學和Python,會立即想到用于繪圖和數據可視化的Matplotlib。它很適合創建出版質量的圖表。
為了獲得長期支持,當前的穩定版本是v2.2.4,但你可以下載v3.0.3以獲取最新功能。它確實要求你擁有Python 3或更新版本,因為已停止對Python 2的支持。
SciPy
SciPy是一個龐大的數據科學軟件包庫,主要面向數學、科學和工程。如果你是數據科學家或工程師,想要在運行技術和科學計算時一應俱全,SciPy正合你的心意。
由于SciPy建立在NumPy上,它有相同的目標受眾。它有大量的子軟件包,每個子軟件包專注于特定領域,比如傅立葉變換、信號處理、優化算法、空間算法和最近鄰。實際上,這是典型數據科學家所需的配套Python庫。
就需求而言,如果你需要SciPy,還需要NumPy。
以上就是與數據科學有關的10種主要的Python庫。
原文標題:Ten essential data science packages for Python,作者:TJ Simmons
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】