我想在MATLAB中为Python中的数组做permute.m
的等效操作。
例如:A
是我要制作为(50,50,3,100)
的形状为(100,50,50,3)
的4D数组。在MATLAB中可以做到这一点:
B = permute(A,[4,1,2,3])
如何在Python中执行此操作?
答案 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])