기계는 거짓말하지 않는다

Python Numpy transpose 본문

Python

Python Numpy transpose

KillinTime 2021. 8. 4. 13:41

Numpy 배열을 transpose를 이용하여 축을 바꿀 수 있다.

transpose 함수의 매개변수는 축의 번호이고 축의 개수만큼 입력해야 한다. (3차원 -> 3개)

축의 인덱스는 0부터 시작한다.

예를 들어 행, 열의 2차원 배열이 있다면 transpose(1, 0) (열, 행)으로 행, 열을 바꿀 수 있다.

이때, 첫 번째 매개변수는 행, 두 번째는 열이 되며 행 매개변수에 열(1)로 바꾸고 열 매개변수에 행(0)으로 바꾼다.

 

shape가 (3, 2, 4) (높이, 행, 열)인 3차원 배열이 있을 때, transpose(1, 2, 0)을 하게 되면

index 0 = 높이, 1 = 행, 2 = 열이 되고

(3(높이), 2, 4)의 높이 자리에  행(index=1, shape=2)

(3, 2(행), 4)의 행 자리에 열(index=2, shape=4)

(3, 2, 4(열))의 열 자리에 높이(index=0, shape=3)로 바뀌게 되어 결과는 (2, 4, 3)이 된다.

import numpy as np
array = [
    [
        [1, 2, 3, 4],
        [4, 5, 6, 7]
    ],
    
    [
        [7, 8, 9, 10], 
        [10, 11, 12, 13]
    ],

    [
        [13, 14, 15, 16],
        [16, 17, 18, 19]
    ]
]

nparray = np.array(array)
print(nparray.shape)

nparray = nparray.transpose(1, 2, 0)
print(nparray.shape)
print(nparray)

Comments