形状操作
ndarray.reshape(shape[,order])
返回一个具有相同数据域,但shape不一样的视图
ndarray.resize(new_shape[,orefcheck])
原地修改数组的形状(需要保持元素个数前后相同)
ndarray.transpose(*axes)
返回数组针对某一轴进行转置的视图
input_image = cv2.imread(r"1.png") #这时input_image的形状为400,400,3
input_image = input_image.transpose((2, 0, 1))#这时形状为3,400,400
ndarray.swapaxes(axis1, asix2)
返回数组axis1轴与axis2轴互换的视图
ndarray.flatten([order])
返回将原数组压缩成一维数组的拷贝(全新的数组)
ndarray.ravel([order])
返回将原数组压缩成一维数组的视图
ndarray.squeeze([axis])
返回将原数组中的shape中axis==1的轴移除之后的视图
上述方法中,除resize、flatten外其他的方法返回的都是原数组修改shape或者axes之后的视图,也就是说,对返回数组中的元素进行修改,原数组中对应的元素也会被修改(因为它们是公用同一个数据域的)。同时,resize方法会修改原数组的shape属性,其他方法不会修改原数组任何内部数据。
同维度内发生交换
input_image = cv2.imread("1.png") #opencv读出来的时bgr
input_image = input_image[:, :, (2, 1, 0)] #转变过后就是rgb