reshape
是Python中NumPy库的核心功能之一,用于调整数组的维度结构而不改变数据本身,常用于数据预处理、矩阵运算和深度学习等领域。 它通过指定目标形状(如行列数)实现数组变形,需确保新形状的元素总数与原数组一致。
-
基本用法
语法为numpy.reshape(array, new_shape)
,其中new_shape
是一个元组。例如,将一维数组转为2x3矩阵:import numpy as np arr = np.arange(6) reshaped = arr.reshape((2, 3)) # 输出二维数组
-
自动推导维度
可用-1
自动计算某维度大小。如将一维数组转为列向量:arr.reshape((-1, 1)) # 行数自动计算,列数为1
-
与
resize
的区别
reshape
不修改原数组,返回新对象;而resize
直接修改原数组。若新形状不兼容(元素总数不同),reshape
会报错,resize
则自动填充或截断。 -
实际应用场景
- 图像处理:将3D像素数组(高度×宽度×通道)展平为2D(像素×通道)以输入神经网络。
- 时间序列分析:将1D数据重构为滑动窗口格式(样本×时间步长)。
灵活使用reshape
能高效适配不同算法对数据维度的要求,但需注意元素总数一致性和内存连续性(可用order
参数调整填充顺序)。