NumPy Ndarray对象
NumPy 的核心对象是 ndarray
(N 维数组),它是一个快速且灵活的大数据集容器。本教程将详细介绍 NumPy ndarray
对象的基础知识、创建方法、属性以及常用操作。
一、NumPy Ndarray 对象简介
ndarray
是 NumPy 提供的一个数据结构,用于存储同类型元素的多维数组。与 Python 原生的列表(list)相比,ndarray
在存储和访问数据方面更加高效,特别是在处理大型数据集时。此外,ndarray
还提供了大量的数学函数和数组操作方法,使得科学计算和数据分析变得更加简单和快速。
二、创建 Ndarray 对象
NumPy 提供了多种方法来创建 ndarray
对象:
使用
np.array
函数您可以使用
np.array
函数将 Python 列表或嵌套列表转换为ndarray
对象。import numpy as np # 创建一维数组 arr1 = np.array([1, 2, 3, 4, 5]) # 创建二维数组 arr2 = np.array([[1, 2, 3], [4, 5, 6]])
使用特殊函数
NumPy 还提供了许多特殊函数来创建特定类型的
ndarray
对象,例如:np.zeros
:创建一个指定形状和类型的全零数组。np.ones
:创建一个指定形状和类型的全一数组。np.empty
:创建一个指定形状的未初始化数组(其值可能是随机的)。np.linspace
:创建一个在指定范围内均匀分布的数组。np.arange
:创建一个类似于 Python 内置range
函数的数组。
# 创建一个 3x3 的全零数组 zeros_arr = np.zeros((3, 3)) # 创建一个 3x3 的全一数组 ones_arr = np.ones((3, 3)) # 创建一个在 0 到 10 之间均匀分布的 5 个数的数组 linspace_arr = np.linspace(0, 10, 5) # 创建一个从 0 到 9 的数组(不包含 10) arange_arr = np.arange(10)
三、Ndarray 对象的属性
ndarray
对象具有多个属性,用于描述数组的形状、数据类型、内存布局等。以下是一些常用的属性:
shape
:返回数组的维度,是一个表示数组在每个维度上大小的元组。dtype
:返回数组元素的数据类型。size
:返回数组中元素的总数。ndim
:返回数组的维度数(即轴的数量)。data
:返回数组的内存缓冲区(通常不需要直接使用)。
# 创建一个二维数组
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 打印数组的属性
print("Shape:", arr.shape) # 输出: (2, 3)
print("Dtype:", arr.dtype) # 输出: int64(或根据系统不同可能为 int32)
print("Size:", arr.size) # 输出: 6
print("Ndim:", arr.ndim) # 输出: 2
# print("Data:", arr.data) # 通常不需要直接打印或使用此属性
四、Ndarray 对象的方法
ndarray
对象提供了大量的方法来执行数组操作,例如数学运算、形状变换、统计计算等。以下是一些常用的方法:
- 算术运算:
+
,-
,*
,/
,**
等运算符可以直接用于数组,进行逐元素的算术运算。 - 形状变换:
reshape
、transpose
、flatten
等方法用于改变数组的形状。 - 统计计算:
sum
、mean
、std
、min
、max
等方法用于计算数组的统计量。 - 索引与切片:与 Python 列表类似,但支持多维索引和高级索引。
# 创建一个二维数组
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 算术运算
arr_plus = arr + 10 # 每个元素加 10
# 形状变换
arr_reshaped = arr.reshape((3, 2)) # 重塑为 3x2 的数组
arr_transposed = arr.transpose() # 转置数组
arr_flattened = arr.flatten() # 将数组展平为一维数组
# 统计计算
sum_val = np.sum(arr) # 计算数组元素的总和
mean_val = np.mean(arr) # 计算数组元素的平均值
# 索引与切片
element = arr[1, 2] # 获取 (1, 2) 位置的元素
row = arr[1, :] # 获取第二行
column = arr[:, 1] # 获取第二列
sub_arr = arr[0:2, 1:3] # 获取子数组
五、总结
NumPy ndarray
对象是一个功能强大的数据结构,它提供了高效的数组存储和操作方法。通过掌握 ndarray
对象的基础知识、创建方法、属性以及常用操作,您可以更加高效地处理和分析数据。NumPy 在科学计算、数据分析、机器学习等领域有着广泛的应用,是 Python 生态系统中不可或缺的一部分。建议您进一步阅读 NumPy 的官方文档或相关书籍,以深入了解 ndarray
对象的高级功能和最佳实践。
本文地址:https://www.tides.cn/p_numpy-ndarray