Numpy
Array의 Indexing와 Array의 Slicing
Python의 List와 유사하게 진행한다.
Array의 Broadcasting
Numpy가 연산을 진행하는 특수한 방법이다.
- M x N, M x 1
- M x 1 부분을 N만큼 똑같이 복제해서 계산한다.
- M x N, 1 x N
- 1 x N 부분을 M만큼 똑같이 복제해서 계산한다.
- M x 1, 1 x N
- 서로 보완하는 구조로 M x 1 부분은 N만큼, 1 x N 부분은 M만큼 복제해서 계산하여 M x N 구조의 Array가 결과물로 출력된다.
영벡터를 numpy로 선언
영벡터 = 원소가 모두 0인 벡터(행렬)
np.zeros(dim)을 통해 생성한다.
일벡터(일행렬)을 numpy로 선언
일벡터 = 원소가 모두 1인 벡터(해열)
np.ones(dim)을 통해 생성
대각행렬 (diagonal matrix)
Main diagonal을 제외한 성분이 0인 행렬
np.diag(main_diagonal)을 통해 생성
항등행렬 (identity matrix)
Main diagonal이 1인 대각행렬
np.eye()를 사용
행렬곱 (dot product)
행렬간의 곱연산
np.dot or @ 사용
Linear Algebra with Numpy
트레이스 (trace)
Main diagonal의 합
np.trace()를 사용
행렬식 (determinant)
행렬을 대표하는 값들 중 하나 => 선형변환
ex)
1 4 7
2 5 8
3 6 9
=>
1(5 * 9 - 6 * 8) - 4(2 * 9 - 3 * 8) + 7(2 * 6 - 3 * 5) = - 3 + 24 - 21 = 0
Full rank가 아니다. 즉, 선형변환 과정에서 차원의 손실이 일어난다.
선형변환을 통해 insight를 얻을 수 있다!
np.linalg.det()으로 계산
역행렬
행렬 A에 대해 AB = BA = 1을 만족하는 행렬 B = A^-1
np.linalg.inv()으로 계산
고유값과 고유벡터 (eigenvalue and eigenvector)
Ax = λx가 있을 때 이 등식을 만족시키는 λ값과 이에 대응하는 x를 각각 고유값과 고유벡터라고 한다.
np.linalg.eig()으로 계산.
이 때 결과는 column을 기준으로 eigenvector가 된다.
'AI > KDT 인공지능' 카테고리의 다른 글
[05/05] 데이터 다루기 - Pandas (0) | 2021.05.05 |
---|---|
[05/04] Git이란 무엇인가? (0) | 2021.05.04 |
[05/03] 인공지능 수학 - 추정, 검정, 엔트로피 (0) | 2021.05.03 |
[04/29] 인공지능 수학 - 확률과 확률분포 (0) | 2021.04.29 |
[04/28] 인공지능 수학 - 자료의 정리 (0) | 2021.04.28 |