数组新的shape属性应该要与原来的配套,如果等于-1的话,那么Numpy会根据剩下的维度计算出数组的另外一个shape属性值。
举个例子:
x = np.array([[2, 0], [1, 1], [2, 3]])
指定新数组行为3,列为,2,则:
y = x.reshape(3,2)
y
Out[43]:
array([[2, 0],
[1, 1],
[2, 3]])
指定新数组列为1,则:
y = x.reshape(-1,1)
y
Out[34]:
array([[2],
[0],
[1],
[1],
[2],
[3]])
指定新数组列为2,则:
y = x.reshape(-1,2)
y
Out[37]:
array([[2, 0],
[1, 1],
[2, 3]])
指定新数组行为1,则:
y = x.reshape(1,-1)
y
Out[39]: array([[2, 0, 1, 1, 2, 3]])
指定新数组行为2,则:
y = x.reshape(2,-1)
y
Out[41]:
array([[2, 0, 1],
[1, 2, 3]])