如何移动numpy矩阵的一个维度?

时间:2016-08-12 03:09:56

标签: python numpy matrix

我有一个storeButtons[i].addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { System.out.println("Store button " + i + " was pressed."); } }); 形状的矩阵A,我想使用这些值来填充形状为(480, 640, 3)的另一个矩阵B。我已经尝试了(3, 480, 640),但我认为这不是诀窍。

对于某些上下文,480和640维度是图像的帧高和宽度,3维度是颜色(RGB)值。

(我正在寻找一种有效的方法,而不是一堆嵌套的for循环。)

1 个答案:

答案 0 :(得分:1)

我认为您想要交换或滚动轴。让我们从三维数组开始:

>>> mat = np.arange(24).reshape(2, 4, 3)
>>> mat.shape
(2, 4, 3)

现在,让我们用swapaxes重新排序轴:

>>> mat.swapaxes(0, 2).swapaxes(1, 2).shape
(3, 2, 4)

或者,让我们滚动轴:

>>> rolled = np.rollaxis(mat, 2)
>>> rolled.shape
(3, 2, 4)