본문 바로가기
파이썬/Pandas & Numpy

2.2) Numpy로 공부하는 선형대수(행렬, 텐서, 전치연산)

by Bentist 2020. 3. 7.

* 본 포스팅은 김도형의 데이터사이언스 스쿨(수학편)을 읽고 썼으며, 책에서 설명이 부족한 부분은 따로 보충했습니다.

 

행렬: 복수의 차원을 가지는 데이터 레코드를 합쳐서 표기한 것. (데이터 레코드의 모음집)

ex. 한 송이의 붗꽃이 4차원 벡터(데이터 수가 4개)라면, 아래의 행렬은 6송이의 붗꽃 데이터를 표기한 것과 같다. 

 

 

데이터를 행렬로 묶어서 표시할 때는 붗꽃 하나에 대한 데이터 레코드, 즉 하나의 벡터가 열이 아닌 행으로 표시

하나의 데이터 레코드를 단독으로 벡터로 나타낼 때는 하나의 열로 나타내고,

 

 

복수의 데이터 레코드 집합을 행렬로 나타낼 때는 하나의 데이터 레코드가 하나의 행으로 표기된다.

 

 


텐서: 데이터 사이언스 분야에서 다차원 배열을 텐서라고 부른다. 같은 크기의 행렬이 여러 개 묶여 있는 것.

ex. 컬러 이미지는 2차원의 행렬처럼 보이지만, RGB(빨강, 초록, 파랑)의 3가지 이미지를 덮어 씌운 것이다.

컬러 이미지에서는 각각의 색을 나타내는 행렬을 채널이라고 부른다.

예제 이미지는 크기( 768 X 1024 ) 이고 3개의 채널이 있으므로 ( 768 X 1024 X 3 ) 크기의 3차원 텐서다.

 

 


전치 연산: 행렬의 행과 열을 바꾸는 연산으로 T 위첨자를 붙여서 표기한다.

 

 

전치 연산으로 만든 행렬을 원래 행렬에 대한 전치행렬이라고 한다.

(열)벡터 x에 대해 전치 연산을 적용하여 만든 x.T는 행 수가 1인 행렬이므로 (행)백터라고 한다.

 

 

Numpy에서는 ndarray 객체의 T속성을 이용하여 전치행렬을 구한다. 이때 T는 메소드가 아니라 속성이므로 소괄호 ()를 붙이면 안되며, np.array([5.1, 3.5, 1.4, 0.2]) 같은 1차원 배열은 전치 연산이 정의되지 않는다. 

댓글