본문 바로가기
수학/Numpy로 공부하는 선형대수

데이터와 행렬

by 대소기 2021. 11. 12.

데이터의 유형

선형대수의 데이터는 개수나 형태에 따라 아래와 같이 구분된다.

1) scalar

* 숫자 하나로 이뤄진 데이터
* 스칼라는 보통 x와 같이 알파벳 소문자로 표기한다.
* 실수집합 R의 원소이다.

2) Vector

* 여러 개의 숫자가 특정한 순서대로 모여 있는 것을 뜻함.
* 벡터를 이루는 데이터의 개수가 n개일 때 n-dimensional vector라고 한다.

* 스칼라 값은 아래첨자를 붙인다. 하지만 벡터 또한 다른 벡터와의 구분을 위해 아랫첨자를 붙이는 경우가 존재한다.
* 벡터 값의 표기는 아래와 같이 bold 되어있거나 화살표 벡터 기호를 사용하기도 한다.

Feature Vector

* 데이터 벡터가 예측 문제의 input으로 사용될 때 이를 feature vector라고 한다.

Numpy를 사용한 Vector표현

* 4차원 벡터를 Numpy로 구현하면 아래와 같다.

x1 = np.array([[5.1],[3.6],[1.5],[0.3]])
x1

# array([[5.1],
#       [3.5],
#       [1.4],
#       [0.2]])

* numpy로 벡터를 구현할 때는 위와 같이 2차원 array 형태로 구현하게 된다.
* 물론 1차원 array도 numpy에서 벡터로 인정하지만, 보통은 2차원 array로 구현하는게 맞다.
* 여기서 주의해야 할 점은 벡터의 차원과 Numpy array의 차원은 동일하지 않다는 점이다.

3) 행렬

* 행렬은 복수 차원을 가지는 벡터가 여러개 있는 경우의 데이터를 합쳐서 표기한 것이다.

* 박스로 표시된 부분이 하나의 벡터를 나타낸다. 행렬의 행은 벡터로서 구성된다.
* 행렬의 관점에서 보면 벡터는 열의 수가 1인 행렬이다. 때문에 벡터를 열 벡터라고도 부른다.
* 때문에 벡터를 아래와 같이 표기하기도 한다.

* 마찬가지로 스칼라도 행렬의 관점에서 보면 행과 열의 수가 각각 1인 행렬이기 때문에 아래와 같이 표기하는 것이 가능하다.

* Numpy로 행렬을 표현할 때는 2차원 ndarray 객체를 사용한다.

A = np.array([[11,12,13],[21,22,23]])
A

#array([[11, 12, 13],
#       [21, 22, 23]])

4) tensor

* 같은 크기의 '행렬'이 여러 개 있는 것을 뜻함.
* 엄밀한 수학적 정의에 의하면 텐서는 다차원 배열로 표현되는 사상(mapping)을 뜻한다. 하지만, 데이터 사이언스 분야에서는 흔히 다차원 배열을 tensor라고 지칭한다.
* 컬러 이미지의 경우 3차원 텐서로 이뤄져 있다.

전치연산

* 행렬의 행과 열을 바꾸는 연산을 뜻한다.
* 위첨자로 T를 사용하거나 '를 사용한다.

* 전치 연산을 통해 생성된 행렬을 전치행렬이라고 한다.
* 열 벡터에 대해 전치 연산을 적용한 것을 행 벡터라고 한다.

 

행렬의 행 표기법과 열 표기법

* NxM행렬은 Nx1 크기의 행 벡터와 1xM크기의 열 벡터로 이뤄져 있다고 표현이 가능하다.

* 이를 그림으로 표현하면 다음과 같다.

* 여기서 주의할 점은 벡터는 기본적으로 열 벡터이므로 행 벡터를 표현할 때 전치연산 T를 해줬다는 점이다.

* 실제 행렬로 확인하면 다음과 같다.

 

특수한 벡터와 행렬

 

영벡터(zeros-vector)

* 모든 원소가 0인 N차원 벡터를 영벡터라고 한다.

일벡터(ones-vector)

* 모든 원소가 1인 N차원 벡터를 일벡터라고 한다.

정방행렬(square matrix)

*행의 개수와 열의 개수가 같은 행렬을 정방행렬이라고 한다.

 

대각 행렬(diagonal matrix)

* 주 대각(main diagonal) 위치에 있지 않은 비대각(off-diagonal) 성분이 모두 0인 행렬을 대각행렬이라고 한다.

* 대각행렬을 떠올리면 정방행렬을 떠올리기 쉽지만, 정방행렬이 아니어도 위와 같이 대각행렬이 될 수 있다.

 

항등행렬(identity matrix)

* 대각행렬 중에서도 모든 대각성분의 값이 1인 정방행렬을 항등행렬이라고 한다.

대칭행렬(symmetric matrix)

* 전치연산을 취했을 때 원본 행렬과 같은 정방행렬을 대칭행렬이라고 한다.

'수학 > Numpy로 공부하는 선형대수' 카테고리의 다른 글

선형대수와 해석기하의 기초  (0) 2021.11.22
선형 연립방정식과 역행렬  (0) 2021.11.18
행렬의 성질  (0) 2021.11.15
벡터와 행렬의 연산  (0) 2021.11.12