数组新的shape属性应该要与原来的配套,如果等于-1的话,那么Numpy会根据剩下的维度计算出数组的另外一个shape属性值。
>>> import numpy as np
>>> x = np.array([[2, 4], [3, 1], [7, 8]])
>>> y = x.reshape(3,2) #指定新数组行为3,列为2
>>> print(y)
[[2 4]
[3 1]
[7 8]]
>>> y = x.reshape(-1,1) #指定新数组列为1,则计算出的行属性为6
>>> print(y)
[[2]
[4]
[3]
[1]
[7]
[8]]
>>> y = x.reshape(-1,2) #指定新数组列为2,则计算出的行属性为3
>>> print(y)
[[2 4]
[3 1]
[7 8]]
>>> y = x.reshape(1,-1) #指定新数组行为1
>>> print(y)
[[2 4 3 1 7 8]]
>>> y = x.reshape(2,-1) #指定新数组行为2
>>> print(y)
[[2 4 3]
[1 7 8]]
>>> y = x.reshape(-1) #一维数组
>>> print(y)
[2 4 3 1 7 8]