Numpy 

 

Array의 Indexing와 Array의 Slicing

 

Python의 List와 유사하게 진행한다.

 

Array의 Broadcasting

 

Numpy가 연산을 진행하는 특수한 방법이다.

 

  1. M x N, M x 1
    • M x 1 부분을 N만큼 똑같이 복제해서 계산한다.
  2. M x N, 1 x N
    • 1 x N 부분을 M만큼 똑같이 복제해서 계산한다.
  3. 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가 된다.

+ Recent posts