Python 数据分析

2025 年 6 月 23 日 | 阅读 8 分钟

Python 是数据科学家和分析师广泛使用的编程语言之一。借助各种内置的数学库和函数,Python 可以更轻松地计算数学问题并执行数据分析。

数据分析是指收集、转换和处理数据的过程,以做出明智的、基于数据的决策,并对未来事件进行预测。数据分析也有助于为业务问题找到可能的解决方案。

数据分析过程有六个步骤

步骤 1:提问或定义所需数据

步骤 2:提取和准备数据

步骤 3:清理和准备数据

步骤 4:分析数据

步骤 5:分享结果

步骤 6:报告发现

用于数据分析的 Python 库

如果您正在学习 Python 进行数据分析,那么您应该了解一些用于执行数据分析任务的库。以下是一些在数据分析中使用的 Python 库

  1. NumPy
  2. Pandas
  3. Matplotlib
  4. Seaborn
  5. Plotly
  6. SciPy

NumPy

一个 NumPy 是一个 Python 包,它使用 Python 提供数值计算,例如矩阵乘法、求逆、点积等。NumPy 的一个重要数据结构是数组,它是由相同数据类型的元素(通常是数字)组成的集合,以类似表格的格式排列,并作为正整数元组进行索引。

NumPy 数组的维度数称为数组的秩。数组的形状是一个元组,它描述了每个维度的大小。

NumPy 数组可以通过各种方式创建,并且可以具有各种秩。它们可以从不同的数据结构创建,例如列表和元组。NumPy 还提供了各种创建数组的函数。让我们看一些例子

示例

立即执行

输出

Matrix A:
[[      626719638               0         9924480]
 [        9924480         9924480 136912013015824]
 [136912013015872 136913397457200        10770176]]

Matrix B:
[639710164         0       192]

说明

上面的代码使用了 NumPy 并创建了两个未初始化的数组。Mat1 是一个 3x3 的整数矩阵,而 mat2 是一个包含 3 个整数值的 1D 数组。np.empty() 函数分配内存但不初始化它,因此输出可能是垃圾数据。

让我们看看如何使用 numpy.zeros 创建数组

示例

立即执行

输出

Matrix 1:
[[0 0 0]
 [0 0 0]
 [0 0 0]]

Matrix 2:
[0 0 0]

Matrix 3:
[[0. 0.]
 [0. 0.]]

说明

在上面的代码中,定义了三个 NumPy 数组,它们用零填充。Mat1 是一个 3x3 的整数矩阵,mat2 是一个长度为 3 的 1D 整数数组,mat3 是一个 2x2 的浮点数整数矩阵。np.zeros() 函数将所有元素赋值为零。

Pandas

Pandas 是一个 Python 库,旨在处理关系型或标记数据,并提供了各种高效处理此类数据(例如时间序列数据)的数据结构。可以说 Pandas 是 NumPy 库的扩展版本。

Pandas 提供了两个强大的数据结构:Series 和 DataFrame。Series 用于处理一维数据(如数组),DataFrame 用于处理二维数据(如表格和电子表格)。

让我们看看如何在 Python 中定义 Series 和 DataFrame

示例

立即执行

输出

Pandas Series:
0    1
1    2
2    3
3    4
4    5
5    6
dtype: int64

说明

在上面的代码中,分别用别名 pd 和 np 导入了 pandas 和 numpy 模块,然后使用 pd.Series() 方法定义了一个 Series,并将一个 numpy 数组传递到其中,然后打印了该 Series。

让我们看看如何创建 DataFrame 来处理二维数据。

示例

立即执行

输出

DataFrame:
   a  b
0  1  a
1  2  b
2  3  c
3  4  d
4  5  e

说明

在上面的代码中,我们首先导入 pandas 和 numpy 库,然后使用 pd.DataFrame() 方法定义了一个 DataFrame,在该方法中,传递了一个以列为键、值为对的字典,然后打印了 DataFrame。

Matplotlib

Matplotlib 是一个 Python 库,用于通过提供交互式图表和绘图支持来可视化数据。它易于使用,构建在 NumPy 数组之上,并旨在与 SciPy 生态系统集成。它支持各种图表,包括折线图、条形图、散点图、直方图等。

PyPlot 是 matplotlib 中的一个模块,提供类似 MATLAB 的接口。PyPlot 提供了各种与图形交互的函数,例如创建图形、使用标签装饰绘图以及在图形中创建绘图区域。

示例

立即执行

输出

Python For Data Analysis

说明

上面的代码使用 Matplotlib 和 NumPy 绘制了一个简单的正弦波。它使用 np.linspace 创建了一组 100 个在 0 到 2 之间均匀分布的值,然后计算了这些值的正弦。然后,它使用 sine 值调用 plt.plot() 函数来生成正弦曲线。此函数还包括轴标签、标题和网格,以提高可读性。最后,使用 plt.show() 方法显示了绘图。

Plotly

Plotly 是 Python 中一个强大且交互式的数据可视化库,它允许用户非常轻松地创建动态的基于 Web 的图表。与 Matplotlib 等静态库不同,Plotly 的交互性允许用户缩放到图表区域、将鼠标悬停在数据点上以显示额外信息,并直接从浏览器导出图表。Plotly 非常适合仪表板和数据探索,因此非常有用。

示例

立即执行

输出

Python For Data Analysis

说明

这是用于使用 Plotly 创建带有标记的交互式折线图的代码。定义了 x 和 y 数据点,并使用 go.Scatter 将它们绘制出来。使用 update_layout 中的标题和标签修改了布局。最后,使用 fig.show() 在浏览器中显示了交互式图表。

Seaborn

Seaborn 是一个高级 Python 数据可视化库,构建在 Matplotlib 的轴之上。Seaborn 使创建信息丰富且具有吸引力的统计图形变得简单优雅。Seaborn 设计为直接与 Pandas DataFrame 配合使用,因此您只需安装 Pandas DataFrame 和 Seaborn 库即可开始使用 Seaborn。

Seaborn 附带内置主题、调色板和函数,用于可视化分布、分类数据、回归关系、热力图以及更多类型的图表。对于快速探索数据和理解数据集,Seaborn 是一个出色的工具。

示例

立即执行

输出

Python For Data Analysis

说明

此示例使用 Seaborn 制作了一个带有回归线的散点图,以显示学习时间和分数的之间的关系。我们创建了一个包含示例数据的 Pandas DataFrame,并使用 sns.lmplot() 进行了绘图。数据定义了学习时间为 x 轴,分数y 轴。最后,调用了 plt.title() 添加标题,并调用了 plt.show() 来显示图表。

SciPy

SciPy (Scientific Python) 是一个用于 Python 编程语言的库,用于科学和技术计算。它本质上是 NumPy 的扩展,并提供了大量附加功能:许多实现优化、积分、插值、线性代数、统计等功能的函数。从数据分析的角度来看,SciPy 是执行统计测试、信号处理和解决纯粹通过数组计算无法解决的通用数学问题的有用库。

示例

立即执行

输出

T-statistic: 0.9453821692056953
P-value: 0.363111258761568

说明

这段代码使用独立 t 检验比较了两组的平均得分。来自 scipy.stats 的 ttest_ind() 函数检查两组均值之间明显的差异是否具有统计学上的可靠性。输出包含独立 t 检验报告的两个值:t 统计量和 p 值 - 两者都用于推断数据。

结论

在本教程中,我们探讨了 Python 如何帮助数据科学家和分析师分析和处理数据。我们通过示例了解了各种用于数据分析的 Python 库,如 NumPy、Pandas、Matplotlib、Plotly 等。

Python 数据分析常见问题解答

1) 什么是 Python 中的数据分析?

Python 中的数据分析是指使用 Python 及其强大的库(如 Pandas、NumPy 和 Matplotlib)来收集、清理、转换、分析和可视化数据的过程,以做出明智的、数据驱动的决策。

2) 为什么 Python 被广泛用于数据分析?

Python 因其简单的语法、强大的社区支持以及一套专门用于高效处理、操作和可视化数据的丰富库而被广泛使用。

3) Python 中用于数据分析的一些常用库有哪些?

常用的库包括

  • NumPy(数值计算)
  • Pandas(数据处理)
  • Matplotlib 和 Seaborn(数据可视化)
  • Plotly(交互式图表)
  • SciPy(科学和统计计算)

4) 开始 Python 数据分析需要具备哪些先决条件?

需要具备 Python 编程基础知识,包括 变量循环函数 和数据结构(如 列表字典)。熟悉 Pandas 和 NumPy 等库是强烈推荐的。

5) Pandas 中的 Series 和 DataFrame 有什么区别?

  • Series:它是一个一维的标记数组。
  • DataFrame:它是一个二维的标记数据结构,类似于表格或电子表格。