數據處理四件套:NumPy/Pandas/Matplotlib/Seaborn速通指南

點擊 “AladdinEdu,同學們用得起的【H卡】算力平臺”,H卡級別算力,按量計費,靈活彈性,頂級配置,學生專屬優惠。

數據清洗 × 特征可視化 × Kaggle數據集實操
讀者收獲:1周內具備數據預處理能力

數據科學家80%的時間都在處理數據,而掌握這四件套你將比90%的同行更高效。本文用可復現的Kaggle實戰,帶你7天打通數據處理任督二脈。

一、四件套定位與協同作戰

1.1 工具定位分析

在這里插入圖片描述

分工明細:
在這里插入圖片描述

1.2 環境極速配置

# 創建虛擬環境  
conda create -n data_science python=3.9  
conda activate data_science  # 一鍵安裝四件套  
pip install numpy pandas matplotlib seaborn  # 驗證安裝  
import numpy as np  
print(f"NumPy {np.__version__}")  

二、NumPy:數據處理的原子操作

2.1 核心數據結構:ndarray

創建數組的5種方式:

import numpy as np  # 從列表創建  
arr1 = np.array([1, 2, 3])  # 特殊數組  
zeros = np.zeros((3, 4))          # 3行4列零矩陣  
ones = np.ones((2, 3))            # 2行3列單位矩陣  
arange = np.arange(0, 10, 0.5)    # 0-10步長0.5  
random = np.random.randn(100)     # 100個正態分布數  

2.2 數組操作:向量化計算

傳統循環 vs 向量化:

# 低效循環(避免!)  
result = []  
for i in range(1000000):  result.append(i * 2)  # 高效向量化  
arr = np.arange(1000000)  
result = arr * 2  # 速度提升200倍  

廣播機制實戰:

A = np.array([[1, 2], [3, 4]])  
B = np.array([10, 20])  # 自動廣播計算  
C = A + B  # [[11,22], [13,24]]  

三、Pandas:數據清洗的瑞士軍刀

3.1 核心數據結構解析

在這里插入圖片描述

3.2 數據清洗六步法

以泰坦尼克數據集為例:

import pandas as pd  # 1. 數據加載  
titanic = pd.read_csv("titanic.csv")  # 2. 數據概覽  
print(titanic.info())  
print(titanic.describe())  # 3. 處理缺失值  
titanic['Age'] = titanic['Age'].fillna(titanic['Age'].median())  
titanic['Embarked'] = titanic['Embarked'].fillna('S')  # 4. 刪除無效列  
titanic.drop(columns=['Cabin', 'PassengerId'], inplace=True)  # 5. 特征工程  
titanic['FamilySize'] = titanic['SibSp'] + titanic['Parch']  
titanic['IsAlone'] = (titanic['FamilySize'] == 0).astype(int)  # 6. 類型轉換  
titanic['Pclass'] = titanic['Pclass'].astype('category')  

3.3 高級數據處理技巧

數據分組聚合:

# 按艙位統計生存率  
survival_by_class = titanic.groupby('Pclass')['Survived'].mean() * 100  # 多維度分析  
class_sex_grouping = titanic.groupby(['Pclass','Sex']).agg(  avg_age=('Age', 'mean'),  survival_rate=('Survived', 'mean')  
)  

數據合并:

# 創建模擬票價表  
fare_df = pd.DataFrame({  'Pclass': [1, 2, 3],  'BaseFare': [100, 50, 25]  
})  # 合并到主表  
titanic = titanic.merge(fare_df, on='Pclass', how='left')  

四、Matplotlib:可視化基礎構建

4.1 繪圖三步法

import matplotlib.pyplot as plt  # 1. 創建畫布  
fig, ax = plt.subplots(figsize=(10, 6))  # 2. 繪制圖形  
ax.plot(survival_by_class.index, survival_by_class.values,  marker='o', linestyle='--', color='b', label='生存率')  # 3. 美化設置  
ax.set_title('泰坦尼克號艙位生存率', fontsize=14)  
ax.set_xlabel('艙位等級', fontsize=12)  
ax.set_ylabel('生存率(%)', fontsize=12)  
ax.grid(True, linestyle='--', alpha=0.7)  
ax.legend()  # 保存輸出  
plt.savefig('survival_rate.png', dpi=300, bbox_inches='tight')  

4.2 常用圖表類型速查

在這里插入圖片描述

五、Seaborn:統計可視化進階

5.1 關系分析三劍客

import seaborn as sns  # 1. 分布關系圖  
sns.jointplot(data=titanic, x='Age', y='Fare', kind='scatter')  # 2. 多變量關系  
sns.pairplot(titanic[['Age','Fare','Pclass','Survived']], hue='Survived')  # 3. 熱度圖  
corr = titanic.corr()  
sns.heatmap(corr, annot=True, cmap='coolwarm')  

5.2 分類數據可視化

# 1. 箱線圖  
sns.boxplot(x='Pclass', y='Age', hue='Survived', data=titanic)  # 2. 小提琴圖  
sns.violinplot(x='Sex', y='Age', hue='Survived',  split=True, data=titanic)  # 3. 計數圖  
sns.countplot(x='Pclass', hue='Survived', data=titanic)  

特征關聯分析矩陣:

g = sns.PairGrid(titanic[['Age','Fare','Pclass','Survived']])  
g.map_diag(sns.histplot)  
g.map_offdiag(sns.scatterplot)  
g.add_legend()  

六、Kaggle實戰:房價預測全流程

6.1 數據集加載與探索

# 加載Kaggle房價數據集  
house = pd.read_csv('house_prices.csv')  # 快速探索  
print(house.shape)  
print(house.info())  # 目標變量分布  
sns.histplot(house['SalePrice'], kde=True)  
plt.title('房價分布')  
plt.show()  

6.2 數據清洗與特征工程

# 1. 處理缺失值  
missing = house.isnull().sum().sort_values(ascending=False)  
missing = missing[missing > 0]  
house.drop(columns=missing.index[:5], inplace=True)  # 刪除高缺失列  # 2. 數值型特征填充  
num_cols = house.select_dtypes(include=['int64','float64']).columns  
house[num_cols] = house[num_cols].fillna(house[num_cols].median())  # 3. 類別型特征轉換  
cat_cols = house.select_dtypes(include='object').columns  
house[cat_cols] = house[cat_cols].fillna('Unknown')  
house = pd.get_dummies(house, columns=cat_cols)  # 4. 特征工程  
house['TotalSF'] = house['TotalBsmtSF'] + house['1stFlrSF'] + house['2ndFlrSF']  
house['Age'] = house['YrSold'] - house['YearBuilt']  

6.3 特征可視化分析

# 1. 房價與關鍵特征關系  
fig, axes = plt.subplots(1, 3, figsize=(18, 6))  
sns.scatterplot(x='TotalSF', y='SalePrice', data=house, ax=axes[0])  
sns.boxplot(x='OverallQual', y='SalePrice', data=house, ax=axes[1])  
sns.scatterplot(x='GrLivArea', y='SalePrice', data=house, ax=axes[2])  # 2. 特征相關性  
corr_matrix = house.corr()  
plt.figure(figsize=(14, 12))  
sns.heatmap(corr_matrix[['SalePrice']].sort_values(by='SalePrice', ascending=False),  annot=True, cmap='viridis')  

七、7天速通學習計劃

每日學習路線

gantt  title 7天速通計劃  dateFormat  YYYY-MM-DD  section Day1-2 NumPy基礎  數組創建與操作     :active,  des1, 2023-08-01, 2d  section Day3-4 Pandas核心  數據清洗實戰      :crit, des2, 2023-08-03, 2d  section Day5  Matplotlib  圖表繪制技巧      :des3, 2023-08-05, 1d  

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/917143.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/917143.shtml
英文地址,請注明出處:http://en.pswp.cn/news/917143.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機系統層次結構

計算機系統通過多層抽象,平衡硬件效率與軟件靈活性,各層以獨立語言和功能構成有機整體。一、層次劃分(從底層到頂層)層級名稱特點實現方式第1級微程序機器層硬件直接執行微指令(如微操作控制信號)。物理硬件…

04 基于sklearn的機械學習-梯度下降(上)

梯度下降一 、為什么要用到梯度下降?正規方程的缺陷:非凸函數問題:損失函數非凸時,導數為0會得到多個極值點(非唯一解)計算效率低:逆矩陣運算時間復雜度 O(n3),特征量翻倍時計算時間…

淘寶 API HTTP/2 多路復用與連接優化實踐:提升商品數據采集吞吐量

一、引言?隨著電商行業的蓬勃發展,對淘寶平臺商品數據的采集需求日益增長。無論是市場調研公司分析市場趨勢、電商平臺整合商品資源,還是商家進行競品分析,都需要高效、穩定地獲取大量淘寶商品數據。然而,傳統的 HTTP 協議在面對…

javascript中call、apply 和 bind 的區別詳解

文章目錄深入淺出:JavaScript 中的 call、apply 和 bind一、三位魔法師的共同使命二、各顯神通的魔法師們1. call - 即時通訊專家2. apply - 批量處理高手3. bind - 預約服務大師三、魔法師們的對比表格四、魔法師們的實際應用1. 借用方法2. 函數柯里化3. 事件處理五…

【PHP】接入百度AI開放平臺人臉識別API,實現人臉對比

目錄 一、需求 二、準備工作 1、申請服務 2、創建應用,獲取開發密鑰 3、官方開發文檔 4、測試人像圖片 三、PHP接入 1、鑒權,獲取access_token 2、人臉對比 四、完整代碼 一、需求 現在人臉識別、人臉對比技術越來越成熟,使用越來越…

【東楓科技】DreamHAT+

DreamHAT 是一款頂部附加硬件 (HAT) 套件,可為 Raspberry Pi 提供 60GHz 毫米波雷達供您使用。 全尺寸 HAT 包含一個英飛凌 BGT60TR13C 芯片,具有單個發射天線和三個接收器(TX/RX),通過 GPIO 引腳和 SPI 連接到 Raspbe…

Spring Boot + MongoDB:從零開始手動配置 MongoConfig 實戰

前言 你以為只要寫上 spring.data.mongodb.*,就能一勞永逸,MongoDB 立馬聽話?別天真,這只是入門級操作,像是拿個自動擋鑰匙,開個小車溜達溜達,遠遠算不上高手操作。當項目需求變得復雜,連接字符串需要靈活配置,或者多數據源并行作戰時,自動配置的魔法顯得捉襟見肘。…

建筑節能目標下,樓宇自控系統以高效運行助力節能減碳

隨著全球氣候變化問題日益嚴峻,節能減排已成為各國政府和企業的重要任務。在建筑領域,樓宇自控系統(Building Automation System, BAS)作為實現建筑節能目標的關鍵技術,正發揮著越來越重要的作用。根據中國政府發布的《…

LOVON——面向足式Open-Vocabulary的VLN導航:LLM做任務分解、YOLO11做目標檢測,最后L2MM將指令和視覺映射為動作,且解決動態模糊

前言 因為項目需要(比如我們在做的兩個展廳講解訂單),近期我一直在研究VLN相關,有些工作哪怕暫時還沒開源(將來可能會開源),但也依然會解讀,比如好處之一是構建完整的VLN知識體系,本文便是其中一例 我在解讀過程中&am…

在線免費的AI文本轉語音工具TTSMaker介紹

TTSMaker是一個在線的文本轉語音工具, 支持多語言和中文方言,不同的語言和方言單次轉換的字符上限從200-10000 不同,轉換的效果還不錯,聽不出明顯的AI痕跡。 工具的網址是:https://ttsmaker.cn/。 工具的界面如上&…

【AI問答】PromQL中interval和rate_interval的區別以及Grafana面板的配置建議

問題1:interval和rate_interval的區別 在PromQL中確實有 $__rate_interval 這個特殊的變量,它與 $__interval 有不同的用途和計算方式。 $__interval vs $__rate_interval 1. $__interval 含義:Grafana計算出的基本時間間隔計算方式&#xff…

STM32學習記錄--Day5

今天了解了:中斷中斷有多個類別包括:USART中斷,I2C中斷等;并通過NVIC來分配中斷的優先級EXTIEXTI的內部結構:EXTI線🔧 ??一、EXTI系統核心架構??1. ??中斷源輸入(左上區域)??…

CentOS7下同步時間的幾種方式(NTP 、Chrony和systemd-timesyncd)

文章目錄前言一、NTP (Network Time Protocol) & ntpd1.原理2. 安裝與配置(ntp 包)3.NTPd 優缺點對比二、Chrony1.原理2.安裝與配置 (chrony 包)3. 優點4. 缺點三、systemd-timesyncd1.原理2.安裝與配置 (systemd 自帶)3. 優點4. 缺點四、手動同步工具1.ntpdate(已廢棄&…

Web3:在 VSCode 中基于 Foundry 快速構建 Solidity 智能合約本地開發環境

相關文章推薦鏈接Web3專欄https://blog.csdn.net/qq_42392981/category_13016259.html在 VSCode 中基于 Foundry 快速構建 Solidity 智能合約本地開發環境引言1. 開發環境準備(Windows)1.1 安裝 VSCode1.2 安裝推薦插件1.3 安裝 Foundry1.4 驗證 Forge 和…

Implement recovery based on PITR using dump file and binlog

模擬生產場景中需要基于某個事務點的恢復,使用存量備份與存量binlog 生成測試數據 (rootlocalhost) [(none)]> create database NanJing; Query OK, 1 row affected (0.01 sec) (rootlocalhost) [test]> use NanJing; Database changed (rootlocalhost) [NanJ…

HTML-取消div,a等標簽點擊效果

一、背景當標簽被設置onclick事件之后,在有些手機瀏覽器中,點擊這些標簽,會有點擊變色效果。想要取消點擊變色效果。通過為div和標簽元素添加-webkit-tap-highlight-color樣式屬性,可以有效地解決這一問題二、解決方案已a標簽示例…

VR 三維重建:開啟沉浸式體驗新時代

在科技飛速發展的今天,VR(虛擬現實)技術已經逐漸滲透到我們生活的各個領域,為我們帶來了前所未有的沉浸式體驗。而 VR 三維重建作為 VR 技術的重要應用之一,更是讓人們能夠身臨其境地感受各種場景,無論是旅…

iTwinjs 幾何 - Curve

CurvePrimitive 常用的見下 LineSegment3d直線段兩點直線邊、桿件、骨架LineString3d折線多點連續直線輪廓線、路徑Arc3d圓弧 / 橢圓弧圓心 半徑 起止角圓孔、圓角、弧段BezierCurve3d貝塞爾曲線端點 控制點平滑過渡、動畫軌跡BSplineCurve3dB 樣條 / NURBS控制點 節點矢…

iPhone 恢復出廠設置是否會刪除所有內容?

當你的 iPhone 經常崩潰、出現黑屏死機、卡在加載屏幕上等問題時,你可能會考慮進行恢復出廠設置來修復它。或者在其他情況下,如果你要將使用多年的設備交給新主人,出于安全考慮,也需要進行恢復出廠設置。那么,恢復出廠…

機器學習②【字典特征提取、文本特征處理(TF-IDF)、數據標準化與歸一化、特征降維】

文章目錄先言一、特征工程概述二、特征提取1.字典特征提取(特征離散化)2.文本特征提取2.1英文文本提取2.2中文文本提取(jieba分詞器)3.TfidfVectorizer TF-IDF文本特征詞的重要程度特征提取三、數據歸一化與標準化1.MinMaxScaler …