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