什么是 shape?
在 Python 的科学计算库 NumPy 中,shape 是一个非常重要的属性,用于描述数组(ndarray)的维度信息。
它返回一个元组(tuple),表示数组在每个维度上的大小。
基本用法示例
import numpy as np
# 创建一个二维数组
arr = np.array([[1, 2, 3],
[4, 5, 6]])
print(arr.shape) # 输出: (2, 3)
上述代码中,arr.shape 返回 (2, 3),表示该数组有 2 行 3 列。
修改数组形状
你可以通过直接赋值来改变数组的 shape(前提是元素总数不变):
arr = np.array([1, 2, 3, 4, 5, 6])
print(arr.shape) # (6,)
arr.shape = (2, 3)
print(arr)
# 输出:
# [[1 2 3]
# [4 5 6]]
更常用的方式是使用 reshape() 方法:
new_arr = arr.reshape(3, 2)
print(new_arr)
# [[1 2]
# [3 4]
# [5 6]]
常见应用场景
- 检查数据维度是否符合模型输入要求(如机器学习)
- 在图像处理中调整通道、高度、宽度的顺序
- 批量处理多维数据前进行结构验证
注意事项
⚠️ 修改 shape 时,新形状的元素总数必须与原数组一致,否则会抛出 ValueError。
例如:一个包含 6 个元素的数组不能 reshape 成 (2, 4),因为 2×4=8 ≠ 6。