NumPy 和熊猫有什么区别?

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 列。之后,我们将使用(线性代数)模块中inv()可用的函数计算数组 arr 的逆矩阵numpy.linalg。

输出结果

[[ 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 仅处理数值。