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


目錄

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.  
     
  9.  
    arr.reshape( 4,-1) #將arr變成4行的格式,列數自動計算的(c=4, d=16/4=4)
  10.  
    '''
  11.  
    out:
  12.  
    array([[ 0, 1, 2, 3],
  13.  
    [ 4, 5, 6, 7],
  14.  
    [ 8, 9, 10, 11],
  15.  
    [12, 13, 14, 15]])
  16.  
    '''
  17.  
    arr.reshape( 8,-1) #將arr變成8行的格式,列數自動計算的(c=8, d=16/8=2)
  18.  
    '''
  19.  
    out:
  20.  
    array([[ 0, 1],
  21.  
    [ 2, 3],
  22.  
    [ 4, 5],
  23.  
    [ 6, 7],
  24.  
    [ 8, 9],
  25.  
    [10, 11],
  26.  
    [12, 13],
  27.  
    [14, 15]])
  28.  
    '''
  29.  
    arr.reshape( 10,-1) #將arr變成10行的格式,列數自動計算的(c=10, d=16/10=1.6 != Int)
  30.  
    '''
  31.  
    out:
  32.  
    ValueError: cannot reshape array of size 16 into shape (10,newaxis)
  33.  
    '''
  • 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.  
     
  4.  
    np.arange( 1,12,2).reshape(3,2)
  5.  
    '''
  6.  
    Out:
  7.  
    array([[ 1, 3],
  8.  
    [ 5, 7],
  9.  
    [ 9, 11]])
  10.  
    '''

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

reshape(2,-1)轉換成兩行:


reshape(-1,1)轉換成1列:

 

reshape(-1,2)轉化成兩列

 

  本文參考了 Python的reshape(-1,1)    、Numpy中reshape函數、reshape(1,-1)的含義(淺顯易懂,源碼實例)

詳內容可以參看reshape的官方文檔:

鏈接:https://blog.csdn.net/qq_29831163/article/details/90112000


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM