1장. 선형대수학.Numpy

Updated:

실습

Scalar와 Vector

  • 스칼라(Scalar)
    • 길이, 넓이, 질량, 온도 크기만 존재하는 양
  • 벡터(Vector)
    • 속도, 위치 이동, 힘 크기와 방향이 모두 존재하는 양

벡터

vector

벡터 공간/내적

Norm

  • 벡터의 크기
  • n차원에서 원점과 n차원 점 사이의 거리
    vector2
  • 2차원에서 Norm이 1이라면 반지름이 1인 원
  • 3차원에서 Norm이 1이라면 반지름이 1인 구

내적

  • Euclidean inner project, Dot product
  • 같은 차원끼리 곱한 후 더한다
  • 차원이 다르면 수행할 수 없다
x = |x1|  y = |y1| 일 떄 x*y = x1·y1 + x2*y2 + x3*y3
    |x2|      |y2|
    |x3|      |y3|

Matrix(행렬)

  • 실수를 직사각형 모양으로 배열한 것
  • 벡터를 쌓아 놓은것
  • Matrix Arithmetic
    • 같은 차원을 가진 행렬끼리만 더하거나 뺄 수 있다
    • 행렬곱은 차원을 주의해야한다

Transpose(전치행렬)

  • 원행렬의 행과 열을 뒤바꾼 행렬

Numpy

  • Python에서 사용되는 과학 컴퓨팅용 라이브러리
  • Python언어에서 기본으로 지원하지 않는 행렬과 같은 데이터 구조 지원 및 수학/과학 계산 함수 포함
  • 머신러닝에서 대부분의 데이터를 행렬로 표현됨

간단한 형렬 연산

import numpy as np
A = np.array([[1, 2],
              [3, 4]])
print(A)
#[[1 2]
# [3 4]]
 
print(A * 3)
#[[3 6]
# [9 12]]

print(A + A)
#[[2 4]
# [6 8]]

print(A - A)
#[[0 0]
# [0 0]]

print(A ** 2)
#[[ 1  4]
# [ 9 16]]

print(3 ** A)
#[[ 3  9]
# [27 81]]

print(A * A)
#[[ 1  4]
# [ 9 16]]

행렬곱셈

x = np.array([[1, 2], [3, 4]])
y = np.array([[3, 4], [3, 2]])

print(np.dot(x, y))
# [[9 8]
#  [21 20]]

비교연산

a = np.array([[1, 2, 3, 4]])
b = np.array([[4, 2, 2, 4]])

print(a == b)
# [False, True, False, True]

print(a > b)
# [False, False, True, False]

논리 연산

a = np.array([[1, 1, 0, 0], dtype=bool])
b = np.array([[1, 0, 1, 0], dtype=bool])

print(np.logical_or(a,b))
# [True, True, True, False]

print(np.logical_and(a,b))
# [True, False, False, False]

a = np.array([1, 2, 3, 4, 5])

np.sum(a)  # 15
a.sum()    # 15

a.min()    # 1
a.max()    # 5

# index값을 가져온다
a.argmin() # 0
a.argmax() # 4

a = np.array([True, True, True)]
b = np.array([True, True, False)]

# all 모든값
np.all(a) # True
np.all(n) # False

# any 하나라도
np.any(a) # True
np.any(b) # True

Statistical

x = np.array([1, 2, 3, 1])

print(np.mean(x))    # 1.75
print(np.median(x))  # 1.5
print(np.std(x))     # 0.82915619758884995

Leave a comment