盤點(diǎn)數(shù)據(jù)科學(xué)流行的29個(gè)Python庫(kù)
本文轉(zhuǎn)載自微信公眾號(hào)「大數(shù)據(jù)DT」,作者保羅·戴特爾。轉(zhuǎn)載本文請(qǐng)聯(lián)系大數(shù)據(jù)DT公眾號(hào)。
我們都著眼于如何使用現(xiàn)有的庫(kù)來避免重復(fù)工作,從而使程序開發(fā)工作事半功倍。通常,開發(fā)大量原始代碼是一個(gè)費(fèi)時(shí)費(fèi)力的工作,為了避免這種情況,我們會(huì)盡可能多地使用庫(kù)中已有的類來創(chuàng)建對(duì)象,通常僅需要一行代碼。因此,庫(kù)能夠幫助我們使用適量的代碼執(zhí)行重要的任務(wù)。
本文介紹數(shù)據(jù)科學(xué)中會(huì)經(jīng)常使用多種Python標(biāo)準(zhǔn)庫(kù)、數(shù)據(jù)科學(xué)庫(kù)和第三方庫(kù)。
01 Python標(biāo)準(zhǔn)庫(kù)
16 / 29
Python標(biāo)準(zhǔn)庫(kù)提供了豐富的功能,包括文本/二進(jìn)制數(shù)據(jù)處理、數(shù)學(xué)運(yùn)算、函數(shù)式編程、文件/目錄訪問、數(shù)據(jù)持久化、數(shù)據(jù)壓縮/歸檔、加密、操作系統(tǒng)服務(wù)、并發(fā)編程、進(jìn)程間通信、網(wǎng)絡(luò)協(xié)議、JSON / XML /其他Internet數(shù)據(jù)格式、多媒體、國(guó)際化、GUI、調(diào)試、分析等。下面列出了一部分Python標(biāo)準(zhǔn)庫(kù)模塊。
- collections:建立在列表、元組、字典和集合基礎(chǔ)上的加強(qiáng)版數(shù)據(jù)結(jié)構(gòu)。
- csv:處理用逗號(hào)分隔值的文件。
- datetime, time:日期和時(shí)間操作。
- decimal:定點(diǎn)或浮點(diǎn)運(yùn)算,包括貨幣計(jì)算。
- doctest:通過驗(yàn)證測(cè)試或嵌入在docstring中的預(yù)期結(jié)果進(jìn)行簡(jiǎn)單的單元測(cè)試。
- json:處理用于Web服務(wù)和NoSQL文檔數(shù)據(jù)庫(kù)的JSON(JavaScript Object Notation)數(shù)據(jù)。
- math:常見的數(shù)學(xué)常量和運(yùn)算。
- os:與操作系統(tǒng)進(jìn)行交互。
- queue:一種先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu)。
- random:偽隨機(jī)數(shù)操作。
- re:用于模式匹配的正則表達(dá)式。
- sqlite3:SQLite關(guān)系數(shù)據(jù)庫(kù)訪問。
- statistics:數(shù)理統(tǒng)計(jì)函數(shù),如均值、中值、眾數(shù)和方差等。
- string:字符串操作。
- sys:—命令行參數(shù)處理,如標(biāo)準(zhǔn)輸入流、輸出流和錯(cuò)誤流。
- timeit:性能分析。
Python擁有一個(gè)龐大且仍在快速增長(zhǎng)的開源社區(qū),社區(qū)中的開發(fā)者來自許多不同的領(lǐng)域。該社區(qū)中有大量的開源庫(kù)是Python受歡迎的最重要的原因之一。
許多任務(wù)只需要幾行Python代碼就可以完成,這會(huì)令人感到很神奇。下面列出了一些流行的數(shù)據(jù)科學(xué)庫(kù)。
02 科學(xué)計(jì)算與統(tǒng)計(jì)
3 / 29
- NumPy(Numerical Python):Python沒有內(nèi)置的數(shù)組數(shù)據(jù)結(jié)構(gòu)。它提供的列表類型雖然使用起來更方便,但是處理速度較慢。NumPy提供了高性能的ndarray數(shù)據(jù)結(jié)構(gòu)來表示列表和矩陣,同時(shí)還提供了處理這些數(shù)據(jù)結(jié)構(gòu)的操作。詳細(xì)教程請(qǐng)戳??高能!8段代碼演示Numpy數(shù)據(jù)運(yùn)算的神操作
- SciPy(Scientific Python):SciPy基于NumPy開發(fā),增加了用于科學(xué)處理的程序,例如積分、微分方程、額外的矩陣處理等。scipy.org負(fù)責(zé)管理SciPy和NumPy。詳細(xì)教程請(qǐng)戳??3段極簡(jiǎn)代碼帶你入門Python科學(xué)計(jì)算庫(kù)SciPy
- StatsModels:為統(tǒng)計(jì)模型評(píng)估、統(tǒng)計(jì)測(cè)試和統(tǒng)計(jì)數(shù)據(jù)研究提供支持。
03 數(shù)據(jù)處理與分析
1 / 29
pandas:一個(gè)非常流行的數(shù)據(jù)處理庫(kù)。pandas充分利用了NumPy的ndarray類型,它的兩個(gè)關(guān)鍵數(shù)據(jù)結(jié)構(gòu)是Series(一維)和DataFrame(二維)。詳細(xì)教程請(qǐng)戳??Pandas最詳細(xì)教程來了!
04 可視化
2 / 29
- Matplotlib:可高度定制的可視化和繪圖庫(kù)。Matplotlib可以繪制正規(guī)圖、散點(diǎn)圖、柱狀圖、等高線圖、餅圖、矢量場(chǎng)圖、網(wǎng)格圖、極坐標(biāo)圖、3D圖以及添加文字說明等。詳細(xì)教程請(qǐng)戳??Python實(shí)操:手把手教你用Matplotlib把數(shù)據(jù)畫出來
- Seaborn:基于Matplotlib構(gòu)建的更高級(jí)別的可視化庫(kù)。與Matplotlib相比,Seaborn改進(jìn)了外觀,增加了可視化的方法,并且可以使用更少的代碼創(chuàng)建可視化。
05 機(jī)器學(xué)習(xí)、深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)
4 / 29
- scikit-learn:一個(gè)頂級(jí)的機(jī)器學(xué)習(xí)庫(kù)。機(jī)器學(xué)習(xí)是AI的一個(gè)子集,深度學(xué)習(xí)則是機(jī)器學(xué)習(xí)的一個(gè)子集,專注于神經(jīng)網(wǎng)絡(luò)。
- Keras:最易于使用的深度學(xué)習(xí)庫(kù)之一。Keras運(yùn)行在TensorFlow(谷歌)、CNTK(微軟的深度學(xué)習(xí)認(rèn)知工具包)或Theano(蒙特利爾大學(xué))之上。
- TensorFlow:由谷歌開發(fā),是使用最廣泛的深度學(xué)習(xí)庫(kù)。TensorFlow與GPU(圖形處理單元)或谷歌的定制TPU(Tensor處理單元)配合使用可以獲得最佳的性能。TensorFlow在人工智能和大數(shù)據(jù)分析中有非常重要的地位,因?yàn)槿斯ぶ悄芎痛髷?shù)據(jù)對(duì)數(shù)據(jù)處理的需求非常巨大。本書使用TensorFlow內(nèi)置的Keras版本。詳細(xì)教程請(qǐng)戳??TensorFlow是什么?怎么用?終于有人講明白了
- OpenAI Gym:用于開發(fā)、測(cè)試和比較強(qiáng)化學(xué)習(xí)算法的庫(kù)和開發(fā)環(huán)境。
06 自然語(yǔ)言處理
3 / 29
- NLTK(Natural Language Toolkit):用于完成自然語(yǔ)言處理(NLP)任務(wù)。
- TextBlob:一個(gè)面向?qū)ο蟮腘LP文本處理庫(kù),基于NLTK和模式NLP庫(kù)構(gòu)建,簡(jiǎn)化了許多NLP任務(wù)。
- Gensim:功能與NLTK類似。通常用于為文檔合集構(gòu)建索引,然后確定另一個(gè)文檔與索引中每個(gè)文檔的相似程度。
關(guān)于作者:保羅·戴特爾,Deitel&Associates公司首席執(zhí)行官兼首席技術(shù)官,畢業(yè)于麻省理工學(xué)院,擁有38年的計(jì)算經(jīng)驗(yàn)。保羅是世界上最有經(jīng)驗(yàn)的編程語(yǔ)言培訓(xùn)師之一,自1992年以來一直針對(duì)軟件開發(fā)人員教授專業(yè)課程。他服務(wù)過的國(guó)際客戶包括思科、IBM、西門子、Oracle、戴爾、富達(dá)、美國(guó)國(guó)家航空航天局肯尼迪航天中心等。
本文摘編自《Python程序設(shè)計(jì):人工智能案例實(shí)踐》,經(jīng)出版方授權(quán)發(fā)布。