데이터의 유형
선형대수의 데이터는 개수나 형태에 따라 아래와 같이 구분된다.
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 |