【发布时间】:2019-04-04 20:27:23
【问题描述】:
我想在 MATLAB 中为 Python 中的数组执行与 permute.m 等效的操作。
例如:A 是一个 4D 数组,形状为 (50,50,3,100),我想制作为 (100,50,50,3)。在 MATLAB 中可以这样做:
B = permute(A,[4,1,2,3])
如何在 Python 中做到这一点?
【问题讨论】:
标签: python
我想在 MATLAB 中为 Python 中的数组执行与 permute.m 等效的操作。
例如:A 是一个 4D 数组,形状为 (50,50,3,100),我想制作为 (100,50,50,3)。在 MATLAB 中可以这样做:
B = permute(A,[4,1,2,3])
如何在 Python 中做到这一点?
【问题讨论】:
标签: python
如果你使用 numpy,你可以使用 swapaxes
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])
【讨论】:
如果你想要转置你的数组,Numpy 数组有一个 .transpose 方法,你只需要记住 Python 从零开始计数
b = a.transpose((3,0,1,2))
(请注意,该方法采用单个参数,一个描述轴排列的元组)。
【讨论】:
classes,在较小程度上保留为常量。