본문 바로가기
5-2 . Numpy 제공 자료구조/Array 연산

[파이썬 numpy] 배열의 두 축을 서로 바꾸기 (swapaxes 메소드)

by 만다린망고 2020. 11. 11.
반응형

[파이썬 numpy] 

배열의 두 축을 서로 바꾸기 (swapaxes 메소드)



swapaxes 는 정의된 배열에서 두 축을 서로 바꿔줍니다. 오직 두개의 축만 입력할 수 있습니다. 예를들어 4차원 배열이라면, 그 중 축 2개를 골라서 입력해 주어야 합니다. 


swapaxes 메소드는 T메소드를 포함하고, transpose 메소드에는 포함되는 개념입니다. 집합관계를 나타내면 아래와 같습니다. 


T메소드 < swapaxes 메소드 < transpose 메소드




2차원배열


2차원 배열을 하나 정의합시다. 


>>> A=np.arange(6).reshape(2,3)

>>> A

array([[0, 1, 2],

       [3, 4, 5]])


swapaxes 를 적용하면 T나 transpose 를 적용한 것과 같은 결과가 나옵니다. 


>>> A.swapaxes(0,1)

array([[0, 3],

       [1, 4],

       [2, 5]])


입력한 축의 순서를 바꿔도 결과는 같습니다. 


>>> A.swapaxes(1,0)

array([[0, 3],

       [1, 4],

       [2, 5]])




3차원 배열


3차원 배열을 하나 정의합시다.


>>> A=np.arange(24).reshape(2,3,4)

>>> A

array([[[ 0,  1,  2,  3],

        [ 4,  5,  6,  7],

        [ 8,  9, 10, 11]],


       [[12, 13, 14, 15],

        [16, 17, 18, 19],

        [20, 21, 22, 23]]])


현재 정의된 축의 길이는 아래와 같습니다.


axis0=2

axis1=3

axis2=4


두 축을 선택해야 하는데요. 0축과 1축을 바꿔보겠습니다. 현재 shape이(2,3,4)니까. 아마도 (3,2,4)로 바뀔 것으로 예상됩니다. 


>>> A.swapaxes(0,1)

array([[[ 0,  1,  2,  3],

        [12, 13, 14, 15]],


       [[ 4,  5,  6,  7],

        [16, 17, 18, 19]],


       [[ 8,  9, 10, 11],

        [20, 21, 22, 23]]])


>>> A.swapaxes(0,1).shape

(3, 2, 4)


예상대로  바뀌었네요. 

반응형

댓글