Numpy怎樣給數組增加一個維度


Numpy怎樣給數組增加一個維度

背景:
很多數據計算都是二維或三維的,對於一維的數據輸入為了形狀匹配,經常需升維變成二維

需要:
在不改變數據的情況下,添加數組維度;(注意觀察這個例子,維度變了,但數據不變)
原始數組:一維數組arr=[1,2,3,4],其shape是(4, ),取值分別為arr[0],arr[1],arr[2],arr[3]
變形數組:二維數組arr[[1,2,3,4]],其shape實(1,4), 取值分別為a[0,0],a[0,1],a[0,2],a[0,3]

實操:
經常需要在紙上手繪數組的形狀,來查看不同數組是否形狀匹配,是否需要升維降維

3種方法:

  • np.newaxis:關鍵字,使用索引的語法給數組添加維度
  • np.expand_dims(arr, axis):方法,和np.newaxis實現一樣的功能,給arr在axis位置添加維度
  • np.reshape(a, newshape):方法,給一個維度設置為1完成升維

方法1:np.newaxis關鍵字

注意:np.newaxis其實就是None的別名

給一維向量添加一個行維度

np.newaxis就是添加一個維度

下面【6】中表示在行的位置添加維度,列方向從頭到尾索引

 數據現在是一行*五列,數據本身沒有增減,只是多了一級括號

給一維向量添加一個列維度

下面【8】中表示在列的位置添加維度,行方向從頭到尾索引

方法2:np.expand_dims方法

np.expand_dims方法實現的效果,和np.newaxis關鍵字是一模一樣的

給一維數組添加一個行維度

相當於arr[np.newaxis, :]

axis為0表示行方向增加維度,為1表示列方向上增加維度

給一維數組添加一個列維度

相當於arr[:, np.newaxis]

方法3:np.reshape方法

給一維數組添加一個行維度

給一維數組添加一個列維度


免責聲明!

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



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