Python的reshape的用法:reshape(1,-1)

Python的reshape的用法:reshape(1,-1)https://blog.csdn.net/qq_29831163/article/details/90112000

目录

numpy中reshape函数的三种常见相关用法

reshape(1,-1)转化成1行:

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

reshape(-1,1)转换成1列:

reshape(-1,2)转化成两列



numpy中reshape函数的三种常见相关用法

  • numpy.arange(n).reshape(a, b)    依次生成n个自然数,并且以a行b列的数组形式显示

 
 
  1. np.arange( 16).reshape( 2, 8) #生成16个自然数,以2行8列的形式显示
  2. # Out:
  3. # array([[ 0, 1, 2, 3, 4, 5, 6, 7],
  4. # [ 8, 9, 10, 11, 12, 13, 14, 15]])
  • mat (or array).reshape(c, -1)     必须是矩阵格式或者数组格式,才能使用 .reshape(c, -1) 函数, 表示将此矩阵或者数组重组,以 c行d列的形式表示

 
 
  1. reshape(m, -1) #改变维度为m行、1列
  2. reshape( -1,m) #改变维度为1行、m列

-1的作用就在此: 自动计算d:d=数组或者矩阵里面所有的元素个数/c, d必须是整数,不然报错)

(reshape(-1, m)即列数固定,行数需要计算)


 
 
  1. arr=np.arange( 16).reshape( 2, 8)
  2. arr
  3. '''
  4. out:
  5. array([[ 0, 1, 2, 3, 4, 5, 6, 7],
  6. [ 8, 9, 10, 11, 12, 13, 14, 15]])
  7. '''
  8. arr.reshape( 4, -1) #将arr变成4行的格式,列数自动计算的(c=4, d=16/4=4)
  9. '''
  10. out:
  11. array([[ 0, 1, 2, 3],
  12. [ 4, 5, 6, 7],
  13. [ 8, 9, 10, 11],
  14. [12, 13, 14, 15]])
  15. '''
  16. arr.reshape( 8, -1) #将arr变成8行的格式,列数自动计算的(c=8, d=16/8=2)
  17. '''
  18. out:
  19. array([[ 0, 1],
  20. [ 2, 3],
  21. [ 4, 5],
  22. [ 6, 7],
  23. [ 8, 9],
  24. [10, 11],
  25. [12, 13],
  26. [14, 15]])
  27. '''
  28. arr.reshape( 10, -1) #将arr变成10行的格式,列数自动计算的(c=10, d=16/10=1.6 != Int)
  29. '''
  30. out:
  31. ValueError: cannot reshape array of size 16 into shape (10,newaxis)
  32. '''
  • numpy.arange(a,b,c)    从 数字a起, 步长为c, 到b结束,生成array
  • numpy.arange(a,b,c).reshape(m,n)  :将array的维度变为m 行 n列。

 
 
  1. np.arange( 1, 12, 2) #间隔2生成数组,范围在1到12之间
  2. # Out: array([ 1, 3, 5, 7, 9, 11])
  3. np.arange( 1, 12, 2).reshape( 3, 2)
  4. '''
  5. Out:
  6. array([[ 1, 3],
  7. [ 5, 7],
  8. [ 9, 11]])
  9. '''

reshape(1,-1)转化成1行:

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


reshape(-1,1)转换成1列:

 

reshape(-1,2)转化成两列

 

  本文参考了 Python的reshape(-1,1)    、Numpy中reshape函数、reshape(1,-1)的含义(浅显易懂,源码实例)

详内容可以参看reshape的官方文档:

 

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值