一、reshape概述
numpy.reshape函數可以將一個數組的形狀進行修改,但是必須確保修改前後數組元素總數不變。也就是說,在reshape的過程中,我們只是改變了數組的形狀,而沒有改變數組元素的數量。
二、reshape函數的基本用法
reshape函數的基本用法非常簡單,它只需要傳入一個代表新的形狀的元組即可,如下所示:
import numpy as np x = np.array([[1, 2], [3, 4], [5, 6]]) y = np.reshape(x, (2, 3)) print(y)
輸出:
array([[1, 2, 3], [4, 5, 6]])
在這個例子中,我們將一個3×2的數組x轉換成了一個2×3的數組y。新的數組的第一維度為2,第二維度為3,因此新數組中有2行3列共6個元素。
三、reshape函數的高級用法
1. 自動推導
reshape函數可以自動推導出新數組的形狀,只需要將一個維度指定為-1即可,如下所示:
import numpy as np x = np.array([[1, 2], [3, 4], [5, 6]]) y = np.reshape(x, (-1,)) print(y)
輸出:
array([1, 2, 3, 4, 5, 6])
在上面的例子中,我們將一個3×2的數組x轉換成了一個1維數組y。其中,將第二個維度指定為-1,表示該維度會自動推導得到。
2. Fortran連續數組
如果一個數組是Fortran連續(也即,列為主序的數組),那麼reshape函數的表現會有所不同,具體可以看下面的例子:
import numpy as np x = np.arange(6).reshape((3, 2)).T y = np.reshape(x, (2, 3), order='F') print(y)
輸出:
array([[0, 2, 4], [1, 3, 5]])
在這個例子中,我們將一個列為主序的3×2數組x轉換成了一個行為主序的2×3數組y。注意,我們在reshape函數中指定了order參數為『F』,表示按照列為主序對數組進行重構。
3. 數組展平
有時候我們想將一個多維數組展平成一個一維數組,也就是說,我們將數組看作是一列,進行重構,如下所示:
import numpy as np x = np.array([[1, 2], [3, 4], [5, 6]]) y = np.reshape(x, (x.size,)) print(y)
輸出:
array([1, 2, 3, 4, 5, 6])
四、總結
以上就是reshape函數的相關內容。我們可以通過這個函數,輕鬆地對數組的維度和形狀進行修改,方便我們進行數據處理的各種操作。
原創文章,作者:NJUZ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/146284.html