import numpy as np
a = np.array([1,2,3,4,5,6,7,8])
#转换成2D数组
b = a.reshape((2,4))
print('b=\n',b)
#转换成3D数组
c = a.reshape((2,2,2))
print('c=\n',c)
输出结果:
注意:
修改后新生成的数组与原数组共用一个内存,改变元素会造成一变俱变:
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