python有三個(gè)核心數(shù)據(jù)科學(xué)庫,在此基礎(chǔ)上還創(chuàng)建了許多其他的庫。這三個(gè)核心數(shù)據(jù)科學(xué)庫分別為:
Numpy
Scipy
Matplotlib
簡單起見,可以把Numpy視為首選數(shù)組。Numpy數(shù)組在許多方面都與標(biāo)準(zhǔn)Python列表不同,但有幾點(diǎn)需要記住,那就是Numpy數(shù)組比標(biāo)準(zhǔn)Python列表運(yùn)算速度更快、所占空間更少、功能更多。但同時(shí)也需注意,這些數(shù)組的大小和類型是固定的,可以在創(chuàng)建數(shù)組時(shí)進(jìn)行定義。同時(shí),它不像列表那樣可以無限添加新值。
Scipy在Numpy的基礎(chǔ)上,提供了許多優(yōu)化、統(tǒng)計(jì)和線性代數(shù)處理等功能。雖然Numpy也有類似的功能,但個(gè)人更喜歡Scipy的功能。想要計(jì)算相關(guān)系數(shù)或創(chuàng)建一些正態(tài)分布數(shù)據(jù)嗎?Scipy簡直就是為你量身定制的。
和其他數(shù)據(jù)科學(xué)庫相比,Matplotlib可能略遜一籌,但它是Python中繪圖的核心庫。功能強(qiáng)大,可以在需要時(shí)進(jìn)行有效控制。
第二代庫
核心庫非常棒,也很常用。不過,還有三個(gè)基于核心庫的第二代庫,它們提供的功能更多,使用的代碼更少。
如果你一直在學(xué)習(xí)數(shù)據(jù)科學(xué)卻沒聽說過Scikit-learn,那我也無話可說。Scikit-learn是Python中的機(jī)器學(xué)習(xí)庫。它擁有強(qiáng)大的社區(qū)支持、歸檔功能和一個(gè)統(tǒng)一且容易使用的API。該庫專注于“核心”機(jī)器學(xué)習(xí),包括結(jié)構(gòu)化數(shù)據(jù)的回歸、分類和聚類。但它并不能用于深度學(xué)習(xí)或貝葉斯機(jī)器學(xué)習(xí)等方面。
Pandas的創(chuàng)建是為了簡化Python中的數(shù)據(jù)分析。Pandas讓加載結(jié)構(gòu)化數(shù)據(jù)、計(jì)算統(tǒng)計(jì)數(shù)據(jù)、切割數(shù)據(jù)變得非常容易。在數(shù)據(jù)挖掘和分析階段,它是一個(gè)不可或缺的工具。但個(gè)人不建議在數(shù)據(jù)生成階段使用Pandas,因?yàn)樗ǔo法很好地?cái)U(kuò)展到大型數(shù)據(jù)集。不過可以將Pandas代碼轉(zhuǎn)換為原始的Numpy數(shù)組,這可以顯著提高數(shù)據(jù)生產(chǎn)的速度。
盡管Matplotlib不是可視化最好看的,但是Seaborn可以很容易創(chuàng)建出漂亮的可視化數(shù)據(jù)。Seaborn是基于Matplotlib創(chuàng)建的,因此仍然可以使用Matplotlib功能增加或編輯Seaborn圖表。它還使復(fù)雜圖表類型的創(chuàng)建變得更加容易??纯聪旅娴膱D片,可以找到一些靈感:
深度學(xué)習(xí)
隨著深度學(xué)習(xí)的迅速發(fā)展,不說一說該領(lǐng)域中較好的Python包是不明智的。
本人是Pytorch的鐵桿粉絲。如果想在學(xué)習(xí)數(shù)據(jù)科學(xué)庫的同時(shí)開始深度學(xué)習(xí),從而讓很先進(jìn)的深度學(xué)習(xí)算法變得相對(duì)容易,那么Pytorch是不二之選。Pytorch正逐漸成為研究和實(shí)現(xiàn)大量功能的標(biāo)準(zhǔn)深度學(xué)習(xí)庫,使其在數(shù)據(jù)生成用例中愈加完善。這些實(shí)例也提供了許多很好的入門教程。
個(gè)人看來,Keras是第一個(gè)真正讓深度學(xué)習(xí)變得觸手可及的數(shù)據(jù)科學(xué)庫。你可以用10行非常容易閱讀和理解的代碼來創(chuàng)建并訓(xùn)練一個(gè)深度學(xué)習(xí)模型。但它的缺點(diǎn)是,高層次的抽象很難實(shí)現(xiàn)Keras當(dāng)前不支持的新研究(盡管他們正在該領(lǐng)域上不斷改進(jìn))。它同時(shí)還支持多個(gè)后端,即Tensorflow和CNTK。
Tensorflow是由谷歌創(chuàng)建的,為深度學(xué)習(xí)的生產(chǎn)提供了很強(qiáng)大的支持。個(gè)人看來,最初版本的Tensorflow相當(dāng)笨拙,但是他們學(xué)到了很多東西,Tensorflow2.0讓深度學(xué)習(xí)的門檻變得越來越低。當(dāng)Pytorch為深度學(xué)習(xí)提供更多的生產(chǎn)支持時(shí),Tensorflow則大大提高了深度學(xué)習(xí)的可用性。
統(tǒng)計(jì)
我想以Python中的兩大統(tǒng)計(jì)模型庫結(jié)束全文。
如果你用過R,你可能會(huì)困惑為什么Scikit-learn沒有在計(jì)算回歸系數(shù)時(shí)給出p值。如果是這樣,你需要看一下statsmodels。個(gè)人看來,statsmodels對(duì)統(tǒng)計(jì)模型和測(cè)試提供了很好的支持,甚至還支持很多R語法。
概率編程和建模非常有趣。如果你不熟悉這個(gè)領(lǐng)域,可以查看黑客的貝葉斯方法,也可以使用PyMC3。PyMC3讓定義的概率模型變得非常直觀,并給許多先進(jìn)的模型提供許多支持。
飛起來
在我之前,無人相信Python中還有許多令人驚艷的數(shù)據(jù)科學(xué)庫。而本文的目的就是關(guān)注最基礎(chǔ)的數(shù)據(jù)科學(xué)庫。有了Python和這些出色的數(shù)據(jù)科學(xué)庫,你會(huì)對(duì)自己可以取得的成就驚嘆不已。我希望本文能夠成為你涉足數(shù)據(jù)科學(xué)的一個(gè)很好
以上內(nèi)容為大家介紹了數(shù)據(jù)科學(xué)中必須了解的Python核心庫,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://m.2667701.com/