영벡터(영행렬)
np.zeros(dim)
일벡터(일행렬)
np.ones(dim)
대각행렬(diagonal matrix)
- Main diagonal을 제외한 성분이 0인 행렬
np.diag(main_diagonal)
항등행렬(identity matrix)
np.eye(dim, dtype)
행렬곱(dot product)
np.dot or @
a = np.array([[1, 4], [2, 3]])
b = np.array([[7, 9], [0, 6]])
print(a.dot(b))
print(a @ b)
트레이스(trace)
- main diagonal의 합
np.trace()
arr = np.array([[1,2,3], [4,5,6], [7, 8, 9]])
print(arr.trace())
print(np.eye(2,dtype=int).trace())
행렬식(determinant)
- 행렬을 대표하는 값들 중 하나
- 선형 변환을 진행했을때 원벡터가 얼마나 변하는지에 대한 척도
- https://jjw7808.tistory.com/7
- determinant의 값이 0이면 full rank가 아니다(차원 손실이 일어난다.)
np.linalg.det()
arr = np.array([[2, 3], [1, 6]])
print(arr)
print(np.linalg.det(arr))
역행렬
- 행렬 A에 대해 $AB = BA = I$를 만족하는 행렬 $B = A^{-1}$
np.linalg.inv()
mat = np.array([[1, 4], [2, 3]])
print(mat)
mat_inv = np.linalg.inv(mat)
print(mat_inv)
print(mat @ mat_inv)
고유값과 고유벡터(eigenvalue and eigenvector)
- 정방행렬 A에 대해$Ax = \lambda x$를 만족하는 상수 $\lambda$와 이에 대응하는 벡터
np.linalg.eig()
mat = np.array([[2, 0 ,-2], [1, 1, -2], [0, 0, 1]])
print(mat)
print(np.linalg.eig(mat))
Excercise
1. 어떤 벡터가 주어졌을 때 L2 norm을 구하는 함수 get_L2_norm()을 작성
- 매개변수: 1차원 벡터(np,array)
- 반환값: 인자로 주어진 벡터의 L2 norm값(number)
a = np.arange(4)
def get_L2_norm(arr):
return np.linalg.norm(arr, 2)
print(get_L2_norm(a))
2. 어떤 행렬이 singular matrix인지 확인하는 함수
- 매개변수 2차원 벡터
- 반환값: 인자로 주어진 벡터가 singular하면 True, 아니면 False
arr = np.array([[2, 3], [1, 6]])
arr2 = np.array([[3, 2], [3, 2]])
def is_singular(arr):
if np.linalg.det(arr) == 0:
return True
return False
print(is_singular(arr))
print(is_singular(arr2))
'프로그래머스 AI 데브코스 5기 > Data study' 카테고리의 다른 글
Matplotlib으로 데이터 시각화 하기 (0) | 2023.03.30 |
---|---|
Pandas 시작하기 (0) | 2023.03.29 |
Numpy 연산 (2) | 2023.03.27 |
시각화 결과로 요약하기 - seaborn (0) | 2023.03.23 |
jupyterlab 시작하기 (0) | 2023.03.20 |