更新時(shí)間:2023年03月28日17時(shí)42分 來(lái)源:傳智教育 瀏覽次數(shù):
Python作為目前較為熱門(mén)的編程語(yǔ)言,它已經(jīng)滲入數(shù)據(jù)分析、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)等以數(shù)據(jù)為支撐的多個(gè)領(lǐng)域,并分別為這些領(lǐng)域提供了功能強(qiáng)大的庫(kù)。這些庫(kù)中會(huì)涉及一些數(shù)據(jù)預(yù)處理的操作,以幫助開(kāi)發(fā)人員解決各種各樣的數(shù)據(jù)問(wèn)題。Python中常用的與數(shù)據(jù)預(yù)處理相關(guān)的庫(kù)包括 NumPy、pandas、SciPy、scikit-leamn等,關(guān)于這些庫(kù)的具體介紹如下。
NumPy(源于Numeric和Python)是一個(gè)Python開(kāi)源的、高性能的基礎(chǔ)科學(xué)計(jì)算庫(kù),該庫(kù)具有以下特點(diǎn)。
(1)提供了一個(gè)可高效處理復(fù)雜數(shù)據(jù)的N維數(shù)組對(duì)象ndarray。該對(duì)象的存儲(chǔ)效率和輸人/輸出性能遠(yuǎn)遠(yuǎn)優(yōu)于Python中等價(jià)的數(shù)據(jù)結(jié)構(gòu)。
(2)大部分代碼由C語(yǔ)言編寫(xiě),性能比純Python 代碼高得多。
(3)無(wú)須循環(huán),便可完成類似MATL.AB中的矢量運(yùn)算。
(4)支持線性代數(shù)、隨機(jī)數(shù)生成以及傅里葉變換功能。
pandas是一個(gè)基于NumPy的庫(kù),是專門(mén)為實(shí)現(xiàn)數(shù)據(jù)分析任務(wù)而創(chuàng)建的。pandas中納人了大量庫(kù)和標(biāo)準(zhǔn)的數(shù)據(jù)模型,并提供了高效地操作大型數(shù)據(jù)集的函數(shù)和方法,方便用戶快速地處理大型數(shù)據(jù)集。pandas具有以下特點(diǎn)。
(1)提供了數(shù)據(jù)結(jié)構(gòu)DataFrame,可以自由地插人或刪除數(shù)據(jù)結(jié)構(gòu)中的列。
(2)提供了智能數(shù)據(jù)對(duì)齊和缺失數(shù)據(jù)的集成處理。
(3)提供了基于標(biāo)簽的切片、花式索引和布爾索引。
(4)提供了分組聚合功能。
(5)提供了高性能的合并數(shù)據(jù)功能。
(6)提供了時(shí)間序列的功能。
(7)提供了讀取與寫(xiě)人數(shù)據(jù)的功能。
(8)提供了數(shù)據(jù)預(yù)處理功能。
(9)提供了數(shù)據(jù)可視化功能。
SciPy是一個(gè)面向Python的開(kāi)源科學(xué)計(jì)算庫(kù)。該庫(kù)自2001年首次發(fā)布以來(lái),已經(jīng)成為Python中科學(xué)算法的行業(yè)標(biāo)準(zhǔn)。SciPy庫(kù)建立在NumPy庫(kù)之上,它擁有數(shù)以千計(jì)的開(kāi)發(fā)包和超過(guò)150000個(gè)依賴存儲(chǔ)庫(kù),具備線性代數(shù)、常微分方程數(shù)值求解、信號(hào)處理、圖像處理、稀疏矩陣等功能。
scikit-learn是一款Python中專門(mén)針對(duì)機(jī)器學(xué)習(xí)應(yīng)用而開(kāi)發(fā)的開(kāi)源庫(kù)。與其他開(kāi)源項(xiàng)目相比,scikit-leam庫(kù)的特點(diǎn)是主要是由社區(qū)成員自發(fā)維護(hù),并不斷地拓展機(jī)器學(xué)習(xí)領(lǐng)域內(nèi)的功能。scikit-lear庫(kù)建立于NumPy、SciPy和matplotlib之上,它不僅支持分類、回歸、降維和聚類這四大機(jī)器學(xué)習(xí)算法,包括支持向量機(jī)、隨機(jī)森林、梯度提升、k均值和DBSCAN,還提供了特征提取、數(shù)據(jù)處理、模型評(píng)估三大模塊,在學(xué)術(shù)界頗受歡迎。
除了前面介紹的庫(kù)之外,我們還可以使用一些圖形化工具來(lái)處理數(shù)據(jù)。OpenRefine是一款簡(jiǎn)單好用的數(shù)據(jù)清理工具,它與傳統(tǒng)的Excel工具很像,但其工作方式更像數(shù)據(jù)庫(kù),能夠以列或字段的方式來(lái)操作數(shù)據(jù)。OpenRefine工具可以幫助用戶在使用數(shù)據(jù)之前完成清理操作,并通過(guò)瀏覽器運(yùn)行界面的方式直觀地展示對(duì)數(shù)據(jù)的相關(guān)操作。限于篇幅,本書(shū)主要圍繞NumPy、pandas這兩個(gè)主流的庫(kù)進(jìn)行介紹,也會(huì)介紹一款專業(yè)的圖形化工具OpenRefine。
北京校區(qū)