reshape(行,列)可以根据指定的数值将数据转换为特定的行数和列数
-1被理解为unspecified value,意思是未指定为给定的。如果我只需要特定的行数,列数多少我无所谓,我只需要指定行数,那么列数直接用-1代替就行了,计算机帮我们算赢有多少列,反之亦然。
reshape第二个参数可省略,reshape(-1,)会将将二维转为一维数组,注意与reshape(1,-1 )不同 。一个是变为一维,一个是改变形状。注意:但reshape第一个参数不可省略reshape(,-1)报错
import numpy as np
import cv2
if __name__ == '__main__':
a = np.array([[1,2],[3,4],[5,6]])
b = a.reshape(-1, )
c = a.reshape(1,-1 )
d = a.reshape(-1,1)
print(b)
print(c)
print(d)
结果:
[1 2 3 4 5 6]
[[1 2 3 4 5 6]]
[[1]
[2]
[3]
[4]
[5]
[6]]