Python——numpy库中reshape的用法

必须是矩阵或者数组才能使用reshape函数来对其进行重组,在使用reshape时我们需要注意数据量是否能够转换成我们所需要的行列数,比如20个数分成3行8列是会报错的

以下示例源数据为

import numpy as np

print(type(np.arange(20)))#需要注意arange(8)创建范围时从0开始不包括8
print(np.arange(20))

'''以下为输出结果
<class 'numpy.ndarray'>
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19]'''

reshape的常用形式有三种:
(1)reshape(m,n):转换成m行n列

import numpy as np

data=np.arange(8)#创建源数据
print(data.reshape(4,2))#将源数据转换成4行2列的矩阵

'''以下为输出结果
[[0 1]
 [2 3]
 [4 5]
 [6 7]]'''

(2)reshape(m,-1):转换成m行1列

import numpy as np

data=np.arange(8)#创建源数据
data.reshape(4,2)#先转换成4行2列
print(data.reshape(8,-1))#转换成8行1列的矩阵,作用与reshape(8,1)

'''输出:
[[ 0]
 [ 1]
 [ 2]
 [ 3]
 [ 4]
 [ 5]
 [ 6]
 [ 7]]'''

在使用时需要注意以下情况 

import numpy as np

data=np.arange(8)
data.reshape(4,2)
'''转换成4行2列后的数据:
[[0 1]
 [2 3]
 [4 5]
 [6 7]]'''
print(data.reshape(2,-1))#对自动8个数据进行重组,以不是-1的指定元素为主
#这里reshape(2,-1)尚可转换成2行,若是reshape(2,1)明确指定行列的情况下则会出现无法重组的报错

'''转换成2行1列则会出现:
[[0 1 2 3]
 [4 5 6 7]]'''

(3)reshape(-1,n):转换成1行n列

import numpy as np

data=np.arange(8)
data.reshape(4,2)
print(data.reshape(-1,8))#将源数据转换成1行20列的数据

#输出:
#[[ 0  1  2  3  4  5  6  7  ]]

在使用时需要注意以下情况: 

import numpy as np

data=np.arange(8)
data.reshape(4,2)
'''转换成4行2列后的数据:
[[0 1]
 [2 3]
 [4 5]
 [6 7]]'''

print(data.reshape(-1,2))#对自动8个数据进行重组,以不是-1的指定元素为主
#这里reshape(-1,2)尚可转换成2列,若是reshape(1,2)明确指定行列的情况下则会出现无法重组的报错

#reshape(-1,2)后的结果:
'''[[0 1]
    [2 3]
    [4 5]
    [6 7]]'''

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱打羽毛球的小怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值