2016년 11월 27일 일요일

python zip 함수를 이용한 transpose

행렬 연산중에 transpose라는 연산이 있습니다.

전치행렬이라고도 하는데요,  A^T 이런식으로

행렬에서 행과 열을 바꿔서, 나타내는 방법입니다.

{\displaystyle {\begin{bmatrix}1&2\\3&4\end{bmatrix}}^{\mathrm {T} }\!\!\;\!=\,{\begin{bmatrix}1&3\\2&4\end{bmatrix}}\quad \quad \quad \quad {\begin{bmatrix}1&2\\3&4\\5&6\end{bmatrix}}^{\mathrm {T} }\!\!\;\!=\,{\begin{bmatrix}1&3&5\\2&4&6\end{bmatrix}}\;}



자매품인 numpy 에서 transpose는 transpose라는 함수가 따로 존재하기도 합니다.


python 에서 numpy 를 사용하지 않고 transpose를 구하는 방법중 쉬운방법중 하나는
zip 함수를 이용하는 것입니다. zip함수와 *를 이용하면 아래와 같이 간단하게 transpose를 구현할 수 있습니다.



테이블의 행과열을 바꿀일이 있다면 zip 함수를 이용하면 아래와 같이 간단히 바꿀수 있는겁니다.


>>> A = [[1,2,3],[4,5,6]]
>>> list( zip(*A))
[(1, 4), (2, 5), (3, 6)]
>>> 


참조자료 http://ko.wikipedia.org/wiki/%EC%A0%84%EC%B9%98%ED%96%89%EB%A0%AC