NumPy 和 pandas 之间的区别是什么?


Pandas 和 NumPy 都是 Python 中功能强大的开源库。这些包有其自身的适用性。许多 pandas 的功能建立在 NumPy 之上,它们都是 SkiPy Analytics 世界的一部分。

Numpy 代表 Numerical 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 数据框读取。并使用 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 仅处理数值。

更新于: 2021年11月18日

312 次浏览

开启你的 职业生涯

完成课程获得认证

开始学习
广告