当前位置:首页>python>Python数据分析的四大金刚:手把手入门Numpy、Pandas、Matplotlib、Seaborn

Python数据分析的四大金刚:手把手入门Numpy、Pandas、Matplotlib、Seaborn

  • 2026-09-02 20:14:15
Python数据分析的四大金刚:手把手入门Numpy、Pandas、Matplotlib、Seaborn

一、Numpy:数据分析的“数学大脑”

一句话理解

Numpy是Python的“计算引擎”,专门处理数组和矩阵运算。如果说Python是瑞士军刀,那Numpy就是电动工具套装。

核心功能

  1. 高效数组运算:比Python列表快10-100倍
  2. 矩阵运算:线性代数、傅里叶变换
  3. 随机数生成:模拟数据、抽样
  4. 广播机制:不同形状数组的智能计算

简单代码示例

import numpy as np# 创建数组arr = np.array([1, 2, 3, 4, 5])print("原始数组:", arr)# 基本运算print("每个元素加10:", arr + 10)print("每个元素平方:", arr ** 2)print("平均值:", np.mean(arr))# 创建矩阵matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])print("\n3x3矩阵:")print(matrix)print("矩阵转置:")print(matrix.T)# 生成随机数据random_data = np.random.randn(100)  # 100个正态分布随机数print("\n随机数据均值:", random_data.mean())

二、Pandas:数据处理的“瑞士军刀”

一句话理解

Pandas是Excel的“编程版”,专门处理表格数据。如果你用Excel做数据分析,Pandas就是你的升级版。

核心功能

  1. 数据读取/保存:CSV、Excel、SQL一键导入
  2. 数据清洗:处理缺失值、重复值
  3. 数据转换:筛选、分组、聚合
  4. 时间序列:日期时间数据处理

简单代码示例

import pandas as pd# 创建数据框(类似Excel表格)data = {    '姓名': ['张三', '李四', '王五', '赵六'],    '年龄': [25, 30, 35, 28],    '城市': ['北京', '上海', '广州', '深圳'],    '月薪': [15000, 18000, 22000, 16000]}df = pd.DataFrame(data)print("原始数据:")print(df)print("\n基本信息:")print(df.info())# 数据筛选print("\n筛选年龄大于28的员工:")print(df[df['年龄'] > 28])# 数据统计print("\n统计信息:")print(df.describe())# 分组统计print("\n各城市平均月薪:")print(df.groupby('城市')['月薪'].mean())# 保存到Exceldf.to_excel('员工数据.xlsx', index=False)print("数据已保存到员工数据.xlsx")

三、Matplotlib:可视化的“老牌王者”

一句话理解

Matplotlib是Python的“绘图板”,能画出几乎所有类型的图表。从简单折线图到复杂3D图,无所不能。

核心功能

  1. 基础图表:折线图、柱状图、散点图
  2. 子图系统:多个图表组合显示
  3. 高度定制:颜色、标签、样式任意调整
  4. 输出格式:PNG、PDF、SVG等多种格式

简单代码示例

import matplotlib.pyplot as pltimport numpy as np# 准备数据x = np.linspace(0, 10, 100)  # 0到10的100个数y1 = np.sin(x)  # 正弦曲线y2 = np.cos(x)  # 余弦曲线# 创建画布plt.figure(figsize=(10, 6))  # 设置画布大小# 绘制两条曲线plt.plot(x, y1, label='sin(x)', color='blue', linewidth=2)plt.plot(x, y2, label='cos(x)', color='red', linewidth=2, linestyle='--')# 添加装饰plt.title('正弦与余弦函数曲线', fontsize=16, fontweight='bold')plt.xlabel('X轴', fontsize=12)plt.ylabel('Y轴', fontsize=12)plt.grid(True, alpha=0.3)  # 添加网格plt.legend()  # 显示图例# 显示图表plt.tight_layout()plt.show()# 快速绘制多个子图fig, axes = plt.subplots(2, 2, figsize=(12, 8))# 子图1:折线图axes[0, 0].plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro-')axes[0, 0].set_title('折线图')# 子图2:柱状图axes[0, 1].bar(['A', 'B', 'C', 'D'], [10, 20, 15, 25], color=['red', 'blue', 'green', 'yellow'])axes[0, 1].set_title('柱状图')# 子图3:散点图x_scatter = np.random.randn(50)y_scatter = np.random.randn(50)axes[1, 0].scatter(x_scatter, y_scatter, alpha=0.6)axes[1, 0].set_title('散点图')# 子图4:饼图sizes = [15, 30, 45, 10]labels = ['A', 'B', 'C', 'D']axes[1, 1].pie(sizes, labels=labels, autopct='%1.1f%%')axes[1, 1].set_title('饼图')plt.suptitle('Matplotlib图表大集合', fontsize=16, fontweight='bold')plt.tight_layout()plt.show()

四、Seaborn:统计可视化的“美学大师”

一句话理解

Seaborn是Matplotlib的“美颜相机”,专门为统计分析设计。一行代码就能生成“网红级”图表。

核心功能

  1. 统计图表:分布图、箱线图、小提琴图
  2. 颜色主题:专业美观的配色方案
  3. 关系可视化:散点矩阵、热力图
  4. 分类数据:分类变量可视化

简单代码示例

import seaborn as snsimport pandas as pdimport numpy as np# 设置Seaborn样式sns.set_style("whitegrid")  # 设置网格背景sns.set_palette("husl")  # 设置调色板# 加载内置数据集tips = sns.load_dataset("tips")print("餐厅小费数据集:")print(tips.head())print("\n数据集信息:")print(tips.info())# 1. 分布图(直方图+密度曲线)plt.figure(figsize=(10, 6))sns.histplot(data=tips, x='total_bill', kde=True, bins=20)plt.title('消费金额分布图', fontsize=16, fontweight='bold')plt.xlabel('消费金额(美元)')plt.ylabel('频次')plt.show()# 2. 箱线图(异常值检测)plt.figure(figsize=(10, 6))sns.boxplot(data=tips, x='day', y='total_bill', hue='sex')plt.title('不同日期消费金额箱线图(按性别)', fontsize=16, fontweight='bold')plt.xlabel('星期')plt.ylabel('消费金额(美元)')plt.legend(title='性别')plt.show()# 3. 散点图+回归线plt.figure(figsize=(10, 6))sns.regplot(data=tips, x='total_bill', y='tip',             scatter_kws={'alpha':0.5}, line_kws={'color':'red'})plt.title('消费金额与小费关系(带回归线)', fontsize=16, fontweight='bold')plt.xlabel('消费金额(美元)')plt.ylabel('小费(美元)')plt.show()# 4. 分类散点图plt.figure(figsize=(10, 6))sns.stripplot(data=tips, x='day', y='total_bill', hue='sex',               dodge=True, alpha=0.7, jitter=0.2)plt.title('不同日期消费情况(按性别)', fontsize=16, fontweight='bold')plt.xlabel('星期')plt.ylabel('消费金额(美元)')plt.legend(title='性别')plt.show()# 5. 热力图(相关性矩阵)plt.figure(figsize=(8, 6))# 选择数值列计算相关性numeric_cols = tips.select_dtypes(include=[np.number]).columnscorr_matrix = tips[numeric_cols].corr()sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', center=0)plt.title('数值变量相关性热力图', fontsize=16, fontweight='bold')plt.tight_layout()plt.show()

Deepseek文字小结:
  1. Numpy是基础:所有计算的核心
  2. Pandas是核心:日常分析的主力
  3. Matplotlib是画笔:想画什么都能画
  4. Seaborn是美颜:让图表更好看
NanoBanana图片小结:

最新文章

随机文章