ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 벡터와 매트릭스 ( Vectors and Matrices )-N131
    파이썬(판다스, AI,데이터 분석) 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, 에러를 제곱하여 평균을 계산하니, 값은 낮을수록 좋다.

     

    댓글

Designed by Tistory.