(20,)向量与(20,1)矩阵的区别及为何不用x.T替代reshape
x与X的核心区别
- 维度本质不同:
x是numpy一维数组,形状为(20,),它没有行或列的属性,只是一组线性排列的数值;X是二维数组,形状为(20,1),明确表示20行1列的列向量,具备矩阵的维度特征。 - 适配模型要求:线性回归等机器学习模型的输入特征要求是「样本数×特征数」的二维结构,
X的格式刚好对应“20个样本,每个样本1个特征”;而一维的x会被模型误判为“1个样本,20个特征”,完全不符合实验逻辑。
为什么不能用
x.T替代reshape(-1,1)? numpy中一维数组没有行/列的方向概念,转置操作x.T对它完全不起作用:
- 执行
x.T后,数组的形状仍然是(20,),无法得到我们需要的(20,1)二维列向量。 - 实际验证代码:
import numpy as np x = np.arange(0, 20, 1) print(x.T.shape) # 输出结果为 (20,)
只有当数组是二维及以上时,转置才会交换维度,一维数组不存在这个逻辑。
内容的提问来源于stack exchange,提问作者Dietzsche Nostoevsky
相关产品推荐
相关产品推荐

