numpy.reshape(-1,1)的具体使用

周末不加班
周末不加班
发布时间:2026-10-15 | 5人浏览过
原创

本文详细解析numpy中reshape(-1,1)与reshape(1,-1)的具体用法。通过多个代码示例,说明当指定新数组shape为-1时,Numpy如何根据剩余维度自动计算。重点区分单特征数据使用reshape(-1,1)转为列向量,以及单样本数据使用reshape(1,-1)转为行向量的场景,帮助开发者准确处理数据维度。

数组新的shape属性必须与原始数组的元素总数保持一致。若将某个维度设为-1,Numpy会根据其余已确定的维度,自动推算出该维度的具体数值,从而确定数组的最终形状。

以下通过具体示例进行说明:

x = np.array([[2, 0], [1, 1], [2, 3]])

若指定新数组的行数为3,列数为2,则执行如下操作:

y = x.reshape(3,2)
 
y
Out[43]: 
array([[2, 0],
       [1, 1],
       [2, 3]])

若指定新数组的列数为1,则执行如下操作:

y = x.reshape(-1,1)
 
y
Out[34]: 
array([[2],
       [0],
       [1],
       [1],
       [2],
       [3]])

若指定新数组的列数为2,则执行如下操作:

y = x.reshape(-1,2)
 
y
Out[37]: 
array([[2, 0],
       [1, 1],
       [2, 3]])

若指定新数组的行数为1,则执行如下操作:

y = x.reshape(1,-1)
 
y
Out[39]: array([[2, 0, 1, 1, 2, 3]])

若指定新数组的行数为2,则执行如下操作:

y = x.reshape(2,-1)
 
y
Out[41]: 
array([[2, 0, 1],
       [1, 2, 3]])

numpy中reshape(-1,1)与reshape(1,-1)的作用

当数据仅包含一个特征时,可使用reshape(-1,1)将其转换为二维列向量;若数据仅包含一个样本,则可使用reshape(1,-1)将其转换为二维行向量。

e = np.array([1]) #只包含一个数据
f = e.reshape(1,-1) #改变形状,输出f之后发现它已经变成了二维数据
import numpy as np
a = np.array([[1,2,3],[4,5,6]]) #是两行三列的数据,二维
b = np.array([1,2])    #是一维数据
c = b.reshape(-1,1)    #c已经变成了二维数据,变成了两行一列
d = b.reshape(1,-1)    #d变成了一行两列的数据,
print('b.shape is {0}'.format(b.shape))
print(b)
print('c.shape is {0}'.format(c.shape))
print(c)
print('d.shape is {0},d array is {1}'.format(d.shape,d))

可以看出,reshape(-1,1)的作用是将一维数据沿行方向扩展,形成多行单列的结构;而reshape(1,-1)则是将一维数据沿列方向扩展,形成单行多列的结构。

以上就是关于numpy.reshape(-1,1)具体使用的详细介绍,更多相关numpy.reshape(-1,1)内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表