当前位置: 首页 > article >正文

【30天玩转python】数据分析与可视化

数据分析与可视化

数据分析是通过数据提取、整理和分析来发现有用信息的过程,而数据可视化则通过图形和图表的方式,将数据转化为视觉化信息,以便快速理解数据趋势和模式。本篇文章将介绍如何使用 Python 进行数据分析与可视化,重点使用两个常用的库:NumPyPandas 进行数据分析,MatplotlibSeaborn 进行数据可视化。


1. 数据分析基础

数据分析的基本步骤包括:

  1. 数据收集:从文件、数据库、API 或网络获取数据。
  2. 数据清洗:处理缺失值、重复值、格式化问题等。
  3. 数据分析:使用统计方法或编程工具分析数据。
  4. 数据可视化:将分析结果以图形或表格的形式展示。

2. 使用 NumPy 进行数值计算

NumPy 是 Python 的数值计算库,主要用于处理数组和矩阵运算。

2.1 安装 NumPy

可以使用以下命令安装 NumPy

pip install numpy
2.2 NumPy 基本用法

示例:创建数组

import numpy as np

# 创建一维数组
arr = np.array([1, 2, 3, 4, 5])

# 创建二维数组
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])

print("一维数组:", arr)
print("二维数组:", arr_2d)

示例:数组运算

# 数组加法
arr_sum = arr + 10

# 数组元素求和
arr_total = np.sum(arr)

print("数组加法:", arr_sum)
print("数组元素总和:", arr_total)

3. 使用 Pandas 进行数据处理

Pandas 是 Python 最强大的数据分析库之一,它提供了高效的数据结构如 DataFrame,用于处理结构化数据。

3.1 安装 Pandas

可以使用以下命令安装 Pandas

pip install pandas
3.2 Pandas 基本用法

示例:创建 DataFrame

import pandas as pd

# 创建 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [24, 27, 22, 32],
        'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']}

df = pd.DataFrame(data)

print(df)

输出:

      Name  Age         City
0    Alice   24     New York
1      Bob   27  Los Angeles
2  Charlie   22      Chicago
3    David   32      Houston
3.3 数据读取与处理

Pandas 可以从多种格式中读取数据,如 CSV、Excel、SQL 数据库等。

示例:读取 CSV 文件

# 读取 CSV 文件
df = pd.read_csv('data.csv')

# 查看前 5 行
print(df.head())

示例:数据清洗

# 删除包含缺失值的行
df = df.dropna()

# 填充缺失值
df['Age'].fillna(df['Age'].mean(), inplace=True)

# 删除重复行
df = df.drop_duplicates()

4. 数据可视化

数据可视化可以帮助我们快速识别数据中的模式、趋势和异常。常用的 Python 可视化库包括 MatplotlibSeaborn

4.1 安装 Matplotlib 和 Seaborn
pip install matplotlib seaborn
4.2 使用 Matplotlib 进行可视化

Matplotlib 是 Python 最基础的可视化库,支持创建多种图表。

示例:绘制折线图

import matplotlib.pyplot as plt

# 数据
x = [1, 2, 3, 4, 5]
y = [10, 20, 25, 40, 30]

# 绘制折线图
plt.plot(x, y)
plt.xlabel('X 轴')
plt.ylabel('Y 轴')
plt.title('折线图示例')
plt.show()
4.3 使用 Seaborn 进行高级可视化

Seaborn 是基于 Matplotlib 的高级可视化库,能够轻松创建美观的统计图表。

示例:绘制柱状图

import seaborn as sns

# 示例数据
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [24, 27, 22, 32]}

df = pd.DataFrame(data)

# 绘制柱状图
sns.barplot(x='Name', y='Age', data=df)
plt.title('柱状图示例')
plt.show()

示例:绘制散点图

# 加载自带数据集
df = sns.load_dataset('iris')

# 绘制散点图
sns.scatterplot(x='sepal_length', y='sepal_width', data=df)
plt.title('鸢尾花数据集散点图')
plt.show()

5. 综合示例:数据分析与可视化

让我们结合 PandasMatplotlibSeaborn,进行一个实际的数据分析和可视化任务。

任务:分析和可视化某城市的气温变化趋势

步骤:

  1. 读取数据文件。
  2. 计算每月的平均气温。
  3. 绘制折线图展示气温变化趋势。

示例代码:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 读取 CSV 数据
df = pd.read_csv('temperature_data.csv')

# 计算每月的平均气温
df['Date'] = pd.to_datetime(df['Date'])
df['Month'] = df['Date'].dt.month
monthly_avg_temp = df.groupby('Month')['Temperature'].mean().reset_index()

# 绘制折线图
plt.plot(monthly_avg_temp['Month'], monthly_avg_temp['Temperature'])
plt.xlabel('月份')
plt.ylabel('平均气温 (°C)')
plt.title('某城市月平均气温变化趋势')
plt.show()

# 使用 Seaborn 绘制带有数据点的折线图
sns.lineplot(x='Month', y='Temperature', data=monthly_avg_temp, marker='o')
plt.title('某城市月平均气温变化趋势 (带数据点)')
plt.show()

6. 小结

数据分析与可视化是数据科学中的关键步骤。通过使用 NumPyPandas 等库,我们可以方便地处理和分析数据;使用 MatplotlibSeaborn 等工具,我们能够将分析结果以直观的图表形式展示出来。掌握这些工具和技巧,可以极大地提升数据分析的效率和质量。


http://www.kler.cn/a/328440.html

相关文章:

  • 散户持股增厚工具:智能T0算法交易
  • SpringBoot:不支持发行版本17超详细解决办法
  • elasticsearch是如何实现master选举的?
  • 讯飞、阿里云、腾讯云:Android 语音合成服务对比选择
  • 一文速学---红黑树
  • Vue实现响应式导航菜单:桌面端导航栏 + 移动端抽屉式菜单
  • P3952 [NOIP2017 提高组] 时间复杂度
  • leetcode:380. O(1) 时间插入、删除和获取随机元素
  • 课设实验-数据结构-线性表-手机销售
  • Android 通过自定义注解实现Activity间跳转时登录路由的自动拦截
  • 【React】入门Day01 —— 从基础概念到实战应用
  • HIVE优化系列之数据倾斜
  • 数据库课程设计案例:在线教育管理系统
  • 51单片机学习第六课---B站UP主江协科技
  • 【STM32单片机_(HAL库)】4-4【定时器TIM】脉冲计数配置步骤及实验
  • 从0开始深度学习(6)——Pytorch动态图机制(前向传播、反向传播)
  • 基础算法--双指针【概念+图解+题解+解释】
  • Arduino UNO R3自学笔记12 之 Arduino在调试过程中串口的使用
  • 【Router】T750路由功能之VLAN划分功能介绍及实现
  • 论文笔记:LAFF 文本到视频检索的新基准
  • 【算法】链表:21.合并两个有序链表(easy)
  • 什么是信息增益比
  • MFC工控项目实例之十九手动测试界面输出信号切换
  • Python办公自动化之Excel
  • [C++] 小游戏 征伐 SLG DNF 0.0.1 版本 zty出品
  • ARM base instruction -- ic