转自: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