Python에서의 벡터, 행렬 표현방법
[10.5, 5.2, 3.25, 7.0]
[10.5, 5.2, 3.25, 7.0]
import numpy as np
x = np.array([10.5, 5.2, 3.25])
x.shape
(3,)
i = 2
x[i]
3.25
np.expand_dims(x, axis=1).shape
(3, 1)
A = np.array([
[10,20,30],
[40,50,60]
])
A
array([[10, 20, 30],
[40, 50, 60]])
A.shape
(2, 3)
i = 0
j = 2
A[i, j]
30
j = 1
A[:, j]
array([20, 50])
i = 1
A[i, :]
array([40, 50, 60])
행렬의 곱셉 (Matrix Multiplication)
행렬의 곱셈을 이해하는 몇 가지 방식들
- 벡터 ×× 벡터
- 행렬 ×× 벡터
- 행렬 ×× 행렬
import numpy as np
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
x.dot(y)
32
y.dot(x)
32
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
x = np.expand_dims(x, axis=1)
y = np.expand_dims(y, axis=0)
x.shape, y.shape
((3, 1), (1, 3))
np.matmul(x,y)
array([[ 4, 5, 6],
[ 8, 10, 12],
[12, 15, 18]])
x = np.expand_dims(np.array([1, 2, 3]), axis=1)
ones = np.ones([1,4])
A = np.matmul(x, ones)
A
array([[1., 1., 1., 1.],
[2., 2., 2., 2.],
[3., 3., 3., 3.]])
고윳값 (Eigenvalues), 고유벡터 (Eigenvectors)
A = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 0]
])
eigenvalues, eigenvectors = LA.eig(A)
eigenvalues, eigenvectors
(array([12.12289378, -0.38838384, -5.73450994]),
array([[-0.29982463, -0.74706733, -0.27625411],
[-0.70747178, 0.65820192, -0.38842554],
[-0.63999131, -0.09306254, 0.87909571]]))
eigenvectors[:, 0]
array([-0.29982463, -0.70747178, -0.63999131])
np.matmul(A, eigenvectors[:, 0])
array([-3.63474211, -8.57660525, -7.75854663])
eigenvalues[0] * eigenvectors[:, 0]
array([-3.63474211, -8.57660525, -7.75854663])
A = np.array([
[1, 2, 3],
[4, 5, 9],
[7, 8, 15]
])
eigenvalues, eigenvectors = LA.eig(A)
eigenvalues, eigenvectors
(array([ 2.12819293e+01, -2.81929326 e-01, 9.68995205 e-16]),
array([[ 0.17485683, 0.85386809, -0.57735027],
[ 0.50887555, 0.18337571, -0.57735027],
[ 0.84289427, -0.48711666, 0.57735027]]))
LA.matrix_rank(A)
2
'BOOTCAMP > 프로그래머스 인공지능 데브코스' 카테고리의 다른 글
[6주차 - Day5] k-Nearest Neighbor classifier 실습 (0) | 2023.06.20 |
---|---|
보이스 피싱 AI 구별법(NLP) (1) | 2023.06.08 |
[6주차 - Day3] ML_basics - E2E (0) | 2023.05.14 |
[6주차 - Day2] 기계학습과 수학 리뷰 (0) | 2023.05.12 |
[6주차 - Day1] 인공지능과 기계학습 소개 (0) | 2023.05.12 |