Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 한 줄로 행렬 전치하기 – NumPy transpose() 활용법

NumPy의 transpose() 함수로 행렬 전치하기

파이썬에서 행렬(2차원 배열)을 전치(transpose)하는 가장 간단한 방법은 NumPy 패키지에서 제공하는 transpose() 함수를 사용하는 것입니다. 이 함수는 ndarray 객체를 받아 행과 열을 뒤바꾼 전치 배열을 반환하며, 단 한 줄의 코드로 처리할 수 있습니다.

>>> import numpy as np
>>> a = np.array([[1, 2], [3, 4]])
>>> a
array([[1, 2],
       [3, 4]])
>>> a.transpose()
array([[1, 3],
       [2, 4]])

transpose()는 원본 배열을 수정하지 않고 전치된 결과를 새로운 배열 뷰(view)로 반환합니다. 따라서 원래 데이터는 그대로 유지되며, 필요할 때마다 안전하게 호출할 수 있습니다.

더 간결한 방법: .T 속성

NumPy 배열은 .T 속성도 제공하므로, 다음과 같이 더 짧게 표현할 수 있습니다.

>>> a.T
array([[1, 3],
       [2, 4]])

a.transpose()a.T는 완전히 동일하게 동작하며, 코드 가독성 측면에서는 .T 속성이 더 널리 사용됩니다.

NumPy 없이 파이썬 리스트를 전치하는 방법

NumPy를 사용하지 않고 일반 중첩 리스트를 전치해야 한다면, 내장 함수 zip()과 언패킹 연산자 *를 조합하면 됩니다.

>>> matrix = [[1, 2], [3, 4]]
>>> list(zip(*matrix))
[(1, 3), (2, 4)]

이 방식은 튜플 형태의 행을 반환하므로, 리스트가 필요한 경우 [list(row) for row in zip(*matrix)]처럼 변환하면 됩니다.

정리

  • NumPy 배열이라면 transpose() 또는 .T 속성으로 한 줄 전치 가능
  • 두 방법 모두 원본을 변경하지 않고 전치된 뷰를 반환
  • 일반 리스트는 zip(*matrix)로 간단히 전치 가능