在Python中置换图像尺寸

时间:2018-10-31 15:46:28

标签: python

我想在MATLAB中为Python中的数组做permute.m的等效操作。

例如:A是我要制作为(50,50,3,100)的形状为(100,50,50,3)的4D数组。在MATLAB中可以做到这一点:

B = permute(A,[4,1,2,3])

如何在Python中执行此操作?

2 个答案:

答案 0 :(得分:3)

如果要对数组进行转置,则Numpy数组具有.transpose方法,您只需要记住Python从零开始计数即可。

b = a.transpose((3,0,1,2))

请注意,该方法采用单个参数,一个描述轴排列的元组)。

答案 1 :(得分:0)

如果您使用numpy,则可以使用交换轴

numpy.swapaxes(a, axis1, axis2)


# equivalent to [4,1,2,3]
B = A.swapaxes(3,0).swapaxes(1,3).swapaxes(2,3)

或转置

B = A.transpose((3,0,1,2))

否则,您可以使用np.moveaxis

B = A.moveaxis([0, 1, 2, 3], [-3, -2, -1, -4])