轉自:https://www.cnblogs.com/xiaojianliu/p/9988268.html
reshape()函數用於改變數組對象的形狀:
import numpy as np a = np.array([1,2,3,4,5,6,7,8]) #轉換成2D數組 b = a.reshape((2,4)) print(b) #轉換成3D數組 c = a.reshape((2,2,2)) print(c)
輸出:
[[1 2 3 4]
[5 6 7 8]] [[[1 2] [3 4]] [[5 6] [7 8]]]
注意:
修改后新生成的數組與原數組共用一個內存,改變元素會造成一變俱變:
a[0] = 99 b[1,1]=100 print(a) print(b) print(c)
輸出:
[ 99 2 3 4 5 100 7 8] [[ 99 2 3 4] [ 5 100 7 8]] [[[ 99 2] [ 3 4]] [[ 5 100] [ 7 8]]]
修改后的數組元素個數與原數組元素個數必須保持一致,若不一致,將會報錯:
d = a.reshape((2,2))
報錯:
ValueError: total size of new array must be unchanged