본문 바로가기

인공지능/Python

Numpy 연산

728x90
반응형

Numpy로 연산하기

vector와 Scalar 사이의 연산

벡터의 각 원소에 대해서 연산을 진행

vector · Scalar

vector와 vector 사이의 연산

벡터의 같은 인데스끼리 연산이 진행

vector · vector

Array의 Indexing

python과의 차이점
[a][b] -> [a, b]

Indexing

Array의 Slicing

python의 List와 유사하게 진행

Slicing

Array의 Broadcasting

M * N, M * 1 => M * N
M * N, 1 * N => M * N
M * 1, 1 * N => M * N

기본적으로 같은 Type의 data에 대해서만 연산이 적용가능
하지만 만약에 피연산자가 연산이 가능하도록 변환이 가능하다면 연산이 가능
이를 Broadcasting이라고 한다.

Broadcasting

영벡터(영행렬)

  • np.zeros(dim)을 통해 생성, dim은 값, 혹은 튜플

영벡터

일벡터

  • np.ones(dims)
  • 원소가 모두 1인 벡터

일벡터

대각행렬

  • Main diagonal을 제외한 성분이 0인 행렬
  • np.diag(main_diagonal)을 통해 생성

대각 행렬

항등행렬

  • Main diagonal이 1인 대각 행렬
  • np.eye(n, (dtype = int, uint, float, complex, ...))를 통해 생성

항등행렬

행렬곱

  • 행렬간의 곱연산
  • np.dot(matrix) or @사용

행렬곱

트레이스(trace)

  • Main diagonal의 합
  • np.trace()를 사용

트레이스

행렬식(determinant)

  • 행렬을 대표하는 값들 중 하나
  • np.linalg.det()으로 계산
  • 0이 나오면 full rank가 아니다
  • 선형변환 과정에서 Vector의 Scaling 척도

행렬식

역행렬

  • 행렬 A에 대해 AB = BA = 1을 만족하는 행렬 B
  • np.linalg.inv()로 계산

역행렬
행렬 @ 역행렬

고유값과 고유벡터

  • 정방행렬 A에 대해 Ax = (lambda)x 를 만족하는 상수 (lambda)와 이에 대응하는 벡터
  • np.linalg.eig()로 계산

고유값과 고유 벡터

728x90
반응형

'인공지능 > Python' 카테고리의 다른 글

Matplotlib  (0) 2020.12.16
Pandas  (0) 2020.12.15
인공지능 교육 3일차  (0) 2020.12.03
인공지능 교육 2일차  (0) 2020.12.02