什么是 shape?
在 Python 的科学计算库 NumPy 中,shape 是 ndarray(N 维数组)对象的一个重要属性。
它以元组(tuple)的形式返回数组在每个维度上的大小。
示例:
import numpy as np
arr = np.array([[1, 2, 3],
[4, 5, 6]])
print(arr.shape) # 输出: (2, 3)
表示该数组有 2 行、3 列。
shape 的常见用法
- 查看维度信息:快速了解数组结构。
- 调试数据形状:在机器学习或图像处理中验证输入数据是否符合预期。
- 动态调整数组:结合
reshape()方法改变数组形状。
reshape 示例:
arr = np.array([1, 2, 3, 4, 5, 6])
print(arr.shape) # (6,)
new_arr = arr.reshape(2, 3)
print(new_arr.shape) # (2, 3)
多维数组中的 shape
对于三维或更高维数组,shape 同样适用:
arr_3d = np.random.rand(2, 4, 5)
print(arr_3d.shape) # 输出: (2, 4, 5)
这表示:2 个“块”,每个块包含 4 行、5 列。
注意事项
shape是只读属性,不能直接赋值修改(但可通过reshape创建新数组)。- 一维数组的
shape是(n,),不是(n)—— 注意逗号! - 空数组的
shape可能为(0,)或(0, n)等。
实际应用场景
- 机器学习输入校验:确保训练数据的 batch_size、特征数匹配模型要求。
- 图像处理:彩色图像通常为
(height, width, channels),如(224, 224, 3)。 - 张量操作:在深度学习框架(如 TensorFlow/PyTorch)中,
shape概念一致。