NumPy 和 Pandas 有什么区别?

pandasserver side programmingprogramming更新于 2025/9/28 12:52:17

Pandas 和 NumPy 都是 Python 中功能强大的开源库,并且各有适用性。Pandas 的许多功能都基于 NumPy 构建,它们都是 SkiPy Analytics 的一部分。

Numpy 代表"数值 Python"。NumPy 是科学计算的核心库,可以处理多维数据,也就是 n 维数值数据。Numpy 数组是一个强大的 N 维数组对象,以行和列的形式存在。

许多 NumPy 操作都是用 C 语言实现的。它速度很快,而且比 Pandas 占用的内存更少。

Numpy 可以让你完成各种数值计算任务,例如线性代数和许多其他高级线性代数任务。这些任务包括矩阵求逆、奇异值分解、行列式估计等。

让我们举个例子,看看如何进行数学运算。

示例

import numpy as np
arr = np.array([[2,12,3], [10,5,7],[9,8,11]])
print(arr)
arr_inv = np.linalg.inv(arr)
print(arr_inv)

解释

上述代码块的第一行导入了 NumPy 模块,np 表示 NumPy 模块的别名。变量 arr 是一个二维数组,它有 3 行 3 列。之后,我们使用 numpy.linalg(线性代数)模块中的 inv() 函数计算数组 arr 的逆矩阵。

输出

[[ 2 12 3]
 [10 5 7]
 [ 9 8 11]]
[[ 0.0021692 0.23427332 -0.14967462]
 [ 0.10195228 0.01084599 -0.03470716]
 [-0.07592191 -0.19956616 0.23861171]]

此输出块包含两个数组:第一个数组表示来自 arr 变量的值数组,第二个数组是 arr 的逆矩阵(变量 arr_inv)。

Pandas 在 Python 中提供高性能数据操作,它需要 NumPy 才能运行,因为它构建于 NumPy 之上。Pandas 的名称源于"面板数据"(Panel Data),意为"基于多维数据的计量经济学"。

Pandas 允许您使用 Python 代码完成电子表格中可以完成的大部分操作,而 NumPy 主要处理数值数据,而 Pandas 则处理表格数据。表格数据可以是任何格式,例如 CSV 文件或 SQL 数据。

Pandas 提供了强大的工具,例如 DataFrame 和 Series,主要用于分析数据。

让我们举个例子,看看 Pandas 如何处理表格数据。

示例

data = pd.read_csv('titanic.csv')
print(data.head())

解释

Pandas 提供了许多函数,可以将任何类型的数据读入 Pandas DataFrame 或 Series 中。在上面的例子中,我们将泰坦尼克号数据集读取为 Pandas DataFrame。并使用 head() 方法显示输出。

输出

  PassengerId   Survived   Pclass \
0           1          0        3
1           2          1        1
2           3          1        3
3           4          1        1
4           5          0        3

                                               Name   Gender   Age   SibSp \
0                           Braund, Mr. Owen Harris     male  22.0       1
1 Cumings, Mrs. John Bradley (Florence Briggs Th...   female  38.0       1
2                            Heikkinen, Miss. Laina   female  26.0       0
3      Futrelle, Mrs. Jacques Heath (Lily May Peel)   female  35.0       1
4                          Allen, Mr. William Henry     male  35.0       0

   Parch            Ticket     Fare Cabin   Embarked
0      0         A/5 21171   7.2500   NaN          S
1      0          PC 17599  71.2833   C85          C
2      0  STON/O2. 3101282   7.9250   NaN          S
3      0            113803  53.1000  C123          S
4      0            373450   8.0500   NaN          S

如我们所见,pandas 数据框可以存储任何类型的数据,而 NumPy 仅处理数值。


相关文章