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