numpy Python中的3D数组

k2arahey  于 5个月前  发布在  Python
关注(0)|答案(2)|浏览(73)

我想知道是否有一种方法可以反转3d numpy数组?比如在1d情况下,我们可以从[1 2 3]到[3 2 1]。3d有类似的方法吗?
谢谢

dojqjjoe

dojqjjoe1#

你的意思是沿着沿着一个特定的轴反转吗?
例如,如果我们有一个大小为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, :]


把第二个轴倒过来。

yyyllmsg

yyyllmsg2#

为此,您可以使用numpy库中的flip函数,其参数axis指示需要反转矩阵的索引沿着。

np.flip(x, axis=2)

字符串
这相当于

x[:, :, ::-1]

相关问题