[파이썬 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)
예상대로 바뀌었네요.
'5-2 . Numpy 제공 자료구조 > Array 연산' 카테고리의 다른 글
[파이썬 numpy] 배열의 지수함수 (exponential) (0) | 2020.11.12 |
---|---|
[파이썬 numpy] 배열의 거듭제곱, 제곱근, 세제곱근 (0) | 2020.11.12 |
[파이썬 numpy] 배열의 전치를 원하는 방향으로 (transpose 메소드) (2) | 2020.11.11 |
[파이썬 numpy] 행렬의 곱셈 하는 법 (dot 메소드) (0) | 2020.11.10 |
[파이썬 numpy] 벡터곱 하는법 (고등학교에서 배운 그 외적, cross 메소드) (0) | 2020.11.10 |
댓글