一、基本介紹
np.reshape()方法是NumPy中的一個關鍵操作,用於重塑數組的尺寸。通過該方法可以改變數組的形狀,維度數量和元素數量不一定會改變。
通常情況下,np.reshape()方法僅僅是改變了數組的尺寸而已。但是,如果新的形狀尺寸不同於原來的尺寸,那麼該方法將創建一個新的數組,元素數量與原來的數量相同。
np.reshape()方法通常使用非常廣泛,比如將一維數組轉化為多維數組,在機器學習中可以將數據重塑為模型能夠接受的形狀。
二、使用方法
np.reshape()方法一般可以使用以下兩種方式:
1.調用方法
import numpy as np # 創建一維數組 arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]) # 將一維數組轉化為三行三列的二維數組 new_arr = arr.reshape(3, 3) print(new_arr)
輸出結果:
[[1 2 3] [4 5 6] [7 8 9]]
使用該方式時,需要將原數組的形狀尺寸以元組的形式傳遞給reshape()方法。這裡為了將原來的一維數組轉化為三行三列的二維數組,需要傳遞(3,3)作為形狀尺寸。
2.使用數組屬性
import numpy as np # 創建一維數組 arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]) # 將一維數組轉化為三行三列的二維數組 arr.shape = (3, 3) print(arr)
輸出結果:
[[1 2 3] [4 5 6] [7 8 9]]
使用該方式時,只需要使用數組對象的shape屬性來直接改變其形狀尺寸。這裡需要將數組的形狀尺寸直接設置為(3,3)。
三、常見應用場景
1.將一維數組轉化為多維數組
在NumPy中,保存數據時通常會使用一維數組。如果需要將數據轉化為多維數組,則可以使用np.reshape()方法。
import numpy as np # 創建一維數組 arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]) # 將一維數組轉化為三行三列的二維數組 new_arr = arr.reshape(3, 3) print(new_arr)
輸出結果:
[[1 2 3] [4 5 6] [7 8 9]]
2.改變數組的尺寸
np.reshape()方法還可以用於改變數組的尺寸,並保證元素數量不變。
import numpy as np # 創建一個二維數組 arr = np.array([[1, 2], [3, 4], [5, 6]]) # 將數據存儲順序改變為行優先 arr = arr.reshape(6, order='C') print(arr)
輸出結果:
[1 2 3 4 5 6]
這裡將原來的二維數組改變為了一維數組,但其元素數量不變,因此可以成功重塑數組的尺寸。
3.快捷設置數組的形狀尺寸
對於numpy數組,可以通過直接設置shape屬性來改變數組的形狀尺寸,實現快捷設置。
import numpy as np # 創建一個三行四列的二維數組 arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) # 將數組重塑成兩行六列的二維數組 arr.shape = (2, 6) print(arr)
輸出結果:
[[ 1 2 3 4 5 6] [ 7 8 9 10 11 12]]
四、總結
np.reshape()方法是NumPy中非常重要的一個方法,用於重新調整數組的形狀,適配不同的應用場景。使用該方法,可以實現一維數組向多維數組的轉換,也可以通過直接設置shape屬性實現數組形狀的快捷設置,對數組的處理起到了重要的作用。
原創文章,作者:BYOES,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/370374.html