: numpy list는 행(row)이 기본단위이다.
: 각 성분을 곱한 연산
: 같은 모양끼리만 가능
x = np.array([1,2,3])
y = np.array([5,2,1])
z = x*y # 벡터 성분곱
def angle(x,y):
v = np.inner(x, y) / (l2_norm(x) * l2_norm(y)
theta = np.arccos(v)
return theta
def l1_norm(x):
norm_x = np.abs(x)
norm_x = np.sum(norm_x)
return norm_x
def l2_norm(x):
norm_x = x*x
norm_x = np.sum(norm_x)
norm_x = np.sqrt(norm_x)
return norm_x
: 벡터와 같이 각 인덱의 위치끼리 곱한 결과 (같은 형태의 벡터끼리만 가능)
x = np.array([[1,-2,3], [7,5,0], [-2,-1,2]])
y = np.array([[0,1], [1,-1], [-2,1]])
print(x @ y)
# [[-8 6]
# [ 5 2]
# [-5 1]]
X = np.array([1,2,3])
Y = np.array([1,2,3])
Z = np.array([[1],[2],[3]])
print(np.dot(X,Y))
# 14
print(np.dot(X,Z))
# [14]
A = np.array([[1,2,3],[4,5,6]])
B = np.array([[1,2],[3,4],[5,6]])
C = np.array([[1,2,3],[4,5,6]])
print(np.dot(A,B))
# array([[22, 28],
# [49, 64]])
print(np.dot(A,C))
# Error
= 행렬곱@
: 행렬A에 의한 연산(차원공간의 이동)을 거꾸로 되돌리는 연산
무어펠로즈(Moore-Penrose)역행렬, 유사역행렬(Psudo-Inverse)
numpy 함수
: np.linalg.pinv(X)
선형회귀분석
y절편 항을 추가해줘야 한다.