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