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