행렬의 기본 연산들

1. 전치행렬

 

전치행렬(transpose)은 행과 열의 index를 서로 뒤바꾼 행렬

 

 

2. 행렬의 기본 수학연산

 

같은 차원을 가지는 두 행렬은 대응하는 성분끼리 연산이 가능하다

 

 

 

 

3. 행렬의 곱셈

 

행렬의 일반적인 곱셈은 조금 특이하게 정의된다.

 

두 행렬 $X,Y$의 행렬곱 $XY$는 $X$의 열의 수와 $Y$의 행의 수가 같을 때 정의되고

 

$X$의 $i$번째 행벡터와 $j$번째 열벡터의 내적을 성분으로 갖는다.

 

행렬의 곱셈은 교환법칙이 성립하지 않는다

 

 

 

numpy array에서 두 행렬의 곱은 @연산자를 활용

 

 

import numpy as np

X = np.array([[1,-2,3],[7,5,0],[-2,-1,2]])

Y = np.array([[0,1],[1,-1],[-2,1]])

X@Y ##matrix product

array([[-8, 6],
       [-5, 2],
       [-5, 1]])
       
       
X = np.array([[1,-2,3],[7,5,0],[-2,-1,2]])
Y = np.array([[0,1,2],[3,1,-1],[5,-2,1]])

X*Y ##hadamard product

array([[0, -2, 6],
       [21, 5, 0],
       [-10, 2, 2]])

 

 

두 행렬의 hadamard product은 * 연산자를 활용

 

np.inner은 두 행렬 $X,Y$에 대하여 $X$의 $i$번째 행벡터와 $Y$의 $j$번째 행벡터의 내적을 성분으로 가지는 행렬을 구해줌

 

 

import numpy as np

X = np.array([[1,-2,3],[7,5,0],[-2,-1,2]])
Y = np.array([[0,1,2],[3,1,-1],[5,-2,1]])

np.inner(X,Y)

array([[ 4, -2, 12],
       [ 5, 26, 25],
       [ 3, -9, -6]])
       
X@(Y.T)

array([[ 4, -2, 12],
       [ 5, 26, 25],
       [ 3, -9, -6]])

 

 

np.inner(X,Y)는 $X(Y^T)$와 같다

 

 

4. 항등행렬(identity matrix)

 

행렬 $I$는 모든 대각원소가 1이고 나머지는 0인 항등행렬

 

어떠한 행렬을 곱해도 자기자신으로 만든다

 

 

TAGS.

Comments