numpy.reshape参数-1解释

numpy.reshape

官方文档给出的解释

值得注意的是,reshape给出参数newreshape可以传-1,官方文档解释,传-1表示剩下来的自动根据矩阵的规模和剩余维度进行计算

大意是说,数组新的shape属性应该要与原来的配套,如果等于-1的话,那么Numpy会根据剩下的维度计算出数组的另外一个shape属性值。

举个例子:

z = np.array([[1, 2, 3, 4],
          [5, 6, 7, 8],
          [9, 10, 11, 12],
          [13, 14, 15, 16]])
z.shape
(4, 4)

z.reshape(-1)

z.reshape(-1)
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16])

z.reshape(-1, 1)

也就是说,先前我们不知道z的shape属性是多少,但是想让z变成只有一列,行数不知道多少,通过z.reshape(-1,1),Numpy自动计算出有12行,新的数组shape属性为(16, 1),与原来的(4, 4)配套。

z.reshape(-1,1)
 array([[ 1],
        [ 2],
        [ 3],
        [ 4],
        [ 5],
        [ 6],
        [ 7],
        [ 8],
        [ 9],
        [10],
        [11],
        [12],
        [13],
        [14],
        [15],
        [16]])

z.reshape(-1, 2)
newshape等于-1,列数等于2,行数未知,reshape后的shape等于(8, 2)

z.reshape(-1, 2)
 array([[ 1,  2],
        [ 3,  4],
        [ 5,  6],
        [ 7,  8],
        [ 9, 10],
        [11, 12],
        [13, 14],
        [15, 16]])

同理,只给定行数,newshape等于-1,Numpy也可以自动计算出新数组的列数。

作者:李彬
链接:https://www.zhihu.com/question/52684594/answer/157491724
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: array.reshape(-1, 1) 的作用是将一个数组重新排列成一个列数为1的二维数组。其中参数 -1 表示行数由程序自动推导出来,以保证数组元素总数不变。这个操作常用于将一维数组转换为列向量,或者在某些机器学习算法中将输入数据的维度进行调整。 ### 回答2: array.reshape(-1, 1)是一种数组重塑的操作。这个操作可以使得原始数组变为一个只有一列的二维数组。 参数-1表示自动计算数组的行数。在这种情况下,reshape函数会根据原始数组的大小和列数计算出新的行数。而参数1表示新数组的列数,也就是1列。 这种操作主要用于需要将原始数组变为列向量的情况。例如,原始数组是一个n维数组,通过reshape(-1, 1)之后,就可以将该数组变为只有1列的二维数组,每一行对应原数组的一个元素。 通过这种重塑操作,可以方便地进行一些需要特定形状的计算。例如,在机器学习中,常常需要将特征向量整理成一列,以便用于训练模型。 总之,array.reshape(-1, 1)是一种用于重塑数组形状的操作,可以将原始数组变为只有1列的二维数组,方便进行一些特定形状要求的计算。 ### 回答3: array.reshape(-1, 1)是一个NumPy数组的方法,用于重新设置数组的形状。其中的-1表示自动计算数组的行数或列数,而1表示数组的列数为1。 通过reshape(-1, 1),我们可以将一个一维数组转换为一个二维列向量。具体来说,如果原始数组有n个元素,那么reshape(-1, 1)将会得到一个n行1列的数组。 举个例子,假设我们有一个一维数组array,其内容为[1, 2, 3, 4, 5],如果我们调用array.reshape(-1, 1),将会得到一个二维数组: [[1] [2] [3] [4] [5]] 可以看到,原始数组被重新排列为5行1列的形式。 这种重新设置数组形状的操作常用于数据处理和机器学习中。例如,在一些机器学习算法中,我们需要将输入数据转换为特定的形状,以便进行训练或预测。reshape(-1, 1)提供了一种方便的方式,可以快速将一维数组转换为列向量,使得数据满足算法的输入要求。 总之,array.reshape(-1, 1)是一种常用的NumPy数组操作,用于将一维数组重新排列为n行1列的二维数组形式。这个方法在数据处理和机器学习中有着广泛的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值