.shape 属性详解掌握 NumPy 数组维度与结构的核心工具
.shape?
在 Python 的 NumPy 库中,.shape 是一个非常重要的属性,用于获取或设置数组(ndarray)的维度信息。
它返回一个元组(tuple),表示数组在每个维度上的大小。
例如,一个 3 行 4 列的二维数组,其 .shape 为 (3, 4)。
import numpy as np
# 创建一维数组
arr1 = np.array([1, 2, 3, 4])
print("arr1.shape:", arr1.shape) # 输出: (4,)
# 创建二维数组
arr2 = np.array([[1, 2], [3, 4], [5, 6]])
print("arr2.shape:", arr2.shape) # 输出: (3, 2)
# 创建三维数组
arr3 = np.zeros((2, 3, 4))
print("arr3.shape:", arr3.shape) # 输出: (2, 3, 4)
你可以通过给 .shape 赋值来改变数组的维度(前提是元素总数不变):
arr = np.arange(12) # [0, 1, 2, ..., 11]
print("原始 shape:", arr.shape) # (12,)
arr.shape = (3, 4)
print("新 shape:", arr.shape) # (3, 4)
print(arr)
reshape() 函数进行灵活的数据重组⚠️ 修改 .shape 时,新形状的元素总数必须等于原数组的元素总数,否则会抛出 ValueError。
✅ 推荐使用 arr.reshape(new_shape) 进行安全的形状变换,它不会修改原数组,而是返回新数组。