파이썬(판다스, AI,데이터 분석)

벡터와 매트릭스 ( Vectors and Matrices )-N131

라면한사바리 2021. 5. 22. 07:45

넘파이 기본

1. numpy shape

numpy에서는 해당 array 의 크기를 알 수 있다

array를 저장한 변수명.shape  -->   ([]개수,[]안에 있는 요소 개수)

 

위의 예처럼  (5,)는  1차원 데이터이며 총 5라는 크기를 갖고 있다.

(4,3)은 2차원의 데이터라고 브루며 4*3의 크기를 갖고 있는 array이다.

 

2. numpy 자료형 (array를 저장한 변수명.dtype)

 

부호가 있는 정수 int(8,16,32,64)

부호가 없는 정수 unit(8,16,32,54)

실수 float(16,32,64,128)

복소수 complex(64,128,256)

불리언 bool

문자열  strint_

파이썬 오브젝트 object

유니코드 unicode_

 

3. np.zeros() , np.ones(), np.arange() 함수

 

4. Array 연산

numpy에서 연산을 할 떄는 크기가 서로 동일한 array 끼리 연산이 진행된다.

<script src="https://gist.github.com/Kim-yk/7ecb71b17249d1ce277bdc931f75ac63.js"></script>

4-1 array 덧셈

 

4-2 array 뺄셈 

 

4-3 array 곱셈

 

4-4 array 나눗셈

4-5 numpy의 브로드 캐스트 기능

위에서는 array가 같은 크기를 가져야 서로 연산이 가능하지만, numpy에서는 브로드캐스트라는 기능을 제공한다.

브로드캐스트란, 서로 크기가 다른 array끼리 연산이 가능하게 하는 기능이다.

5 array 인덱싱 하기

6 array 마스크 (boolean 인덱싱)


7. numpy 함수
7-1 하나의 array에 적용되는 함수

7-2  두 개의 array 적용되는 함수

7-3. 통계 함수

7-4 벡터 관련 함수

 

7-5 기타함수

 

수업 내용 요약

스칼라 : 우리가 흔히 생각하는 숫자, 속력과 같은 느낌, 크기를 나타냄

벡터 : 방향을 나타내는 수 혹은 기호, 속도와 같은 느낌, 크기와 방향을 나타냄 

 

3D 벡터

 

벡터의 크기

|v|(벡터의 크기)-(Magnitude, Norm, Length) = √(a^2+b^2+c^2

 

 

벡터의 내적 (Dot Product)

두 벡터 a⃗   b⃗  의 내적은, 각 구성요소를 곱한 뒤 합한 값과 같습니다.

v = [1, 2, 3, 4]

x = [5, 6, 7, 8]

v  x = 1 * 5 + 2 * 6 + 3 * 7 + 4 * 8

= 70

 

  • 내적은 교환법칙이 적용 됩니다: ab=ba
  • 내적은 분배법칙이 적용 됩니다: a(b+c)=ab+ac
  • 벡터의 내적을 위해서는 두 벡터의 길이가 반드시 동일해야 합니다.

두 벡터 간의 거리

 

행렬의 Transpose (3,2) --> (2,3)

역행렬

  • 역행렬을 계산하는 방법은 여러가지가 있으며, 행렬의 역수 와 같이 표현 할 수 있습니다.
  • 즉 행렬과 그 역행렬의 값은 항상 1 (단위 매트릭스) 입니다. 2x2 매트릭스를 기준으로, 역행렬을 계산하는 방식중 하나는 아래와 같습니다.

역행렬

역행렬의 조건

det( A ) = │A│≠0

ad-bc ≠ 0

 

 

*, np.dot, np.matmul 에 대해서

* :  shape이 동일한 두 행렬의 원소 끼리 곱하는 연산자이다.

np.dot : 두 벡터의 내적, 내적곱, 점곱 등을 계산하는 함수이다.

np.matmul : 행렬의 곱연산을 위해 정의된 함수이다. (@)

 

np.dot과 np.matmul의 차이점

1. dot은 행렬과 상수의 곱셈을 혀옹하지만, matmul은  Error를 일으킨다.

2. 3차원 이상의 행렬곱을 수행할 경우, dot와 matmul은 전혀 다른 결과를 나타낸다.

참조 : https://cyber0946.tistory.com/64  

 

Python @연산자, 벡터 행렬 곱연산

파이썬의 Numpy, Tensorflow는 행렬 곱을 빠르게 계산할 수 있도록 함수를 지원한다. 하지만 두 실수의 곱연산과 달리 matrix의 곱연산은 교환법칙(commutative law)가 성립하지 않는다. 즉, 편리한 함수를

cyber0946.tistory.com

결론

벡터 계산할 때는  dot, 행렬 계산할 떄는 matmul을 사용한다

 

Errors

MSE:평균 제곱 오차(Mean squared error ), 차의 제곱에 대해 평균을 취한 것
MAE: Mean Square Error, 에러를 제곱하여 평균을 계산하니, 값은 낮을수록 좋다.