벡터란?
숫자를 원소로 가지는 리스트(list) 또는 배열(array)
x = 열벡터
x = 행벡터
파이썬 코드
x = [1,7,2] or x= np.array([1,7,2)
벡터의 차원 : 벡터의 원소 개수
벡터의 노름 : 원점으로부터의 거리, 기호는 노름(norm)이라 부름
L1 norm :
L2 norm :
#L1-노름
def l1_norm(x):
x_norm = np.abs(x)
x_norm = np.sum(x_norm)
return x_norm
#L2-노름
##L2-노름은 np.linalg.norm을 이용해도 구현 가능
def l2_norm(x):
x_norm = x*x
x_norm = np.sum(x_norm)
x_norm = np.sqrt(x_norm)
return x_norm
```
노름별 기하학적 성질
두 벡터 사이의 거리(뺄셈)
두 벡터 사이의 각도(-노름만 가능)
벡터 b에 정사영(orthogonal Projection)된 벡터의 길이 만큼 벡터 b의 길이를 조정한 것
def angle(x,y):
v = np.inner(x,y) / (l2_norm(x) * l2_norm(y))
theta = np.arccos(v)
return theta