python——reshape(-1,1)的使用及拓展

python中函数 reshape(-1,1)

reshape(行数,列数)常用来更改数据的行列数目

那么问题来了reshape(-1,1)是什么意思呢?难道有-1行?
这里-1是指未设定行数,程序随机分配,所以这里-1表示任一正整数
所以reshape(-1,1)表示(任意行,1列)
代码示例:

import numpy as np
a = np.random.rand(4,4)
print(a)
a.shape

结果:

[[0.33470239 0.60656619 0.80516508 0.68868392]
[0.2766264 0.8671767 0.6159649 0.97478996]
[0.00396481 0.49131735 0.9425952 0.55233518]
[0.64367974 0.29176064 0.8041766 0.57641429]]
(4, 4)

更改a的shape:

a = a.reshape(-1,1)
print(a)

结果:

[[0.33470239]
[0.60656619]
[0.80516508]
[0.68868392]
[0.2766264 ]
[0.8671767 ]
[0.6159649 ]
[0.97478996]
[0.00396481]
[0.49131735]
[0.9425952 ]
[0.55233518]
[0.64367974]
[0.29176064]
[0.8041766 ]
[0.57641429]]

同理我们可以改为:reshape(-1,2),即a.shape = (8,2);
这样我们可以将数组a改为我们任意想要的数组,其中-1的所在的位置要求为正整数,按照上述数组a的shape,-1 = (4x4 )/ b ,b为你确定的数组列数或行数的乘积。
例:a.reshape(-1,2,2) 则 -1 = (4x4)/ (2x2) = 4 ,即a.reshape(4,2,2)

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Python中,`reshape(-1, 1)`是NumPy数组的一个方法,它可以将数组的形状更改为列数为1,行数自动计算的形状。 其中,`-1`表示自动计算行数,而`1`表示列数为1。这个方法通常用于将一维数组转换为二维数组,或者将多维数组展平为一维数组后再转换为二维数组。 例如,对于一个形状为(4, 2)的二维数组,执行`reshape(-1, 1)`操作后,得到的数组形状将变为(8, 1)。 ### 回答2: Python中的reshape(-1,1)函数是numpy中的一个重构函数,它用于重构一个数组的形状。其中,参数-1表示可以自动计算行数或列数,而1表示该数组只有一列。也就是说,reshape(-1,1)函数可以将一个一维的数组变为二维的数组,其中只有一列。 下面通过一个示例来进一步解释reshape函数的具体操作。假设有一个包含10个整数的一维数组arr,如下所示: arr= [1,2,3,4,5,6,7,8,9,10] 若要将该数组重构为一个二维数组,使之每行只有一个元素,可以使用以下代码: arr = np.array(arr).reshape(-1,1) 其中,np.array(arr)将一维数组转化为numpy数组,reshape(-1,1)将其重构为二维数组。 此时arr的形状变为: [[ 1] [ 2] [ 3] [ 4] [ 5] [ 6] [ 7] [ 8] [ 9] [10]] 可以看到,该数组的形状变为了10行1列的二维数组。这种变换可以在一些数据分析和机器学习中使用。具体来说,可以将一维数组中的每个元素作为一个样本的特征值,然后将这些特征值存储在一个二维数组中,在之后的工作中使用该数组进行数据处理和分析。 总之,Python中的reshape(-1,1)函数可以将一个一维数组重构为一个二维数组,其中只有一列的数据。该函数的使用具有很大的灵活性,并可以根据具体的数据需求进行调整。 ### 回答3: 在Python的numpy库中,reshape函数是一种用于重塑数组结构的函数。其中参数“-1”常用于表示未知的维度大小。当将参数传递给reshape函数时,可以使用“-1”来代替任何未知的维度大小,使数组在不改变总大小的情况下重塑为相同的形状。 在reshape函数中,-1通常与1一起使用,以表示新数组的第二维度大小为1。使用reshape(-1,1)可以将原数组重新塑造为一个新的二维数组,其中第一维的大小可以由函数自动计算,而第二维的大小为1。 例如,如果有一个原始数组a=[1,2,3,4,5],并且我们想将它重新塑造为一个二维数组,其中一列是原始数据,另一列是0,则可以使用以下代码: a = np.array([1,2,3,4,5]) b = np.zeros((a.shape[0], 1)) c = np.concatenate((a.reshape(-1,1), b), axis=1) 在这个代码中,使用a.reshape(-1,1)将一维的a数组转换为了一个新的二维数组,该数组有自动计算的行数和一列。然后,我们使用np.zeros函数创建了一个形状为(a.shape[0],1)的新数组b,它也有自动计算的行数和一列。最后,我们使用np.concatenate函数将a和b连接在一起,形成新的数组c,它有两列,其中第一列是我们原始的a数组,而第二列是全部由0组成的一列。 总而言之,numpy的reshape(-1,1)函数可以将一维数组转换为新的二维数组,其中第一维的大小有函数自动计算,而第二维的大小为1。这个函数非常有用,在处理机器学习问题时可以帮助我们将标签数据转换为适合训练模型的格式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值