如何在一次操作中反转第一轴的前四个元素并反转一个numpy数组的第二个轴?

时间:2017-07-11 13:48:32

标签: python arrays numpy indexing

我有一个形状为M的numpy数组(n, 1000, 6)。这可以被认为是具有1000行和6列的n个矩阵。对于每个矩阵,我想颠倒行的顺序(即顶行现在位于底部,反之亦然),然后反转前4列的顺序(因此第0列现在是第3列,第1列是第2列,第2列是第1列,第3列是第0列,但第4列仍然是第4列,第5列仍然是第5列。我想在单个操作中执行此操作,而不在表达式的左侧进行索引,因此这是不可接受的:

M[:,0:4,:] = M[:,0:4,:][:,::-1,:] M[:,:,:] = M[:,:,::-1]

使用Keras后端无法实现此操作。它必须是

的形式

M = M[indexing here that solves the task]

如果我想要反转所有列的顺序而不是前4个顺序,可以使用M = M[:,::-1,::-1]轻松实现这一目标,因此我尝试修改此目标以实现目标,但遗憾的是可以&# 39;弄清楚如何。这甚至可能吗?

1 个答案:

答案 0 :(得分:3)

M[:, ::-1, [3, 2, 1, 0, 4, 5]]