如何像2D一样转置3D矩阵?

时间:2019-01-10 07:21:26

标签: python numpy

我想转置3D矩阵,但不影响大多数内部列表。 3D矩阵是图像的numpy数组,转置的目的是旋转图像而不改变像素值(r.g.b)。

image = np.array(
    [
        [[15, 15, 25], [50, 50, 50], [90, 90, 90], [255, 255, 255], [127, 127, 127]],

        [[121, 121, 121], [75, 10, 75], [187, 187, 187], [0, 0, 0], [210, 50, 100]],

        [[31, 31, 31], [63, 63, 63], [87, 87, 87], [63, 63, 63], [63, 63, 63]],

        [[95, 95, 95], [95, 95, 95], [115, 115, 115], [87, 87, 87], [95, 95, 95]],

        [[95, 95, 95], [63, 63, 63], [63, 63, 63], [87, 87, 87], [100, 250, 250]]
    ], dtype=np.uint8)

结果应该是这样的。

result = np.array(
    [
        [[15, 15, 25], [121, 121, 121], [31, 31, 31], [95, 95, 95], [95, 95, 95]],

        [[50, 50, 50], [75, 10, 75], [63, 63, 63], [95, 95, 95], [63, 63, 63]],

        [[90, 90, 90], [187, 187, 187], [87, 87, 87], [115, 115, 115], [63, 63, 63]],

        [[255, 255, 255], [0, 0, 0], [63, 63, 63], [87, 87, 87], [87, 87, 87]],

        [[127, 127, 127], [210, 50, 100], [63, 63, 63], [95, 95, 95], [100, 250, 250]]
    ], dtype=np.uint8)

2 个答案:

答案 0 :(得分:0)

看看np.swapaxis

np.swapaxes(image, 0, 1)

答案 1 :(得分:0)

我认为答案here

基本上使用此

numpy.swapaxes(image,0,1)