在python中反转一个3d数组

时间:2015-02-12 16:59:37

标签: python arrays numpy

我想知道是否有办法扭转3d numpy阵列?像在1d情况下我们可以从[1 2 3]到[3 2 1]。 3D有类似的东西吗?

由于

1 个答案:

答案 0 :(得分:1)

你的意思是沿特定的轴反转它吗?

例如,如果我们有一个大小为height x width x 3的彩色图像,其中最后一个轴是红色,绿色,蓝色(RGB)像素,我们想将其转换为蓝色,绿色,红色(BGR) :

image_bgr = image[:, :, ::-1]

如果您愿意,您甚至可以将其写为:

image_bgr = image[..., ::-1]

作为一个更完整的例子,请考虑一下:

import numpy as np

# Some data...
x = np.arange(3 * 4 * 5).reshape(5, 4, 3)

print x[0,0,:]

# Reverse the last axis
y = x[:, :, ::-1]

print y[0,0,:]

但是,一般情况下,您可以使用它来反转任何特定的轴。例如,您可以轻松完成:

y = x[:, ::-1, :]

反转第二轴。