이 게시물은 SciPy.org의 퀵 튜토리얼에 나온 선형대수 모듈을 필기한 것이다.
베이직 튜토리얼을 읽다가 더 나오면 더 추가해야지.
먼저 a, b, y라는 행렬이 아래와 같다고 하자.
import numpy as np a = np.array([[1.0, 2.0],
[3.0, 4.0]])
b = np.array([[2.0, 2.0], [3.0, 3.0]]) y = np.array([[5.0],
[7.0]])
1. x.transpose()
전치행렬을 구하기 위한 함수이다.
print(a.transpose())
# [[1. 3.]
# [2. 4.]]
2. np.linalg.inv(x)
역행렬을 구하기 위한 함수이다.
print(np.linalg.inv(a))
# [[-2. 1. ]
# [ 1.5 -0.5]]
3. np.eye(n)
단위행렬을 만드는 함수이다.
e = np.eye(3)
print(e)
# [[1. 0. 0.]
# [0. 1. 0.]
# [0. 0. 1.]]
4. @
행렬 @ 행렬 로 내적을 구할 수 있다.
print(a@b)
# [[ 8. 8.]
# [18. 18.]]
5. np.trace(a)
대각선 요소(왼쪽 위에서 오른쪽 아래의 방향에 있는 대각선 요소)의 합을 구할 수 있다.
print(np.trace(a)) #5.0
6. np.linalg.solve(a, b)
A가 정사각 행렬일 때, Ax = b를 만족하는 x를 구하는 함수이다.
print(np.linalg.solve(a, b))
# [[-1. -1. ]
# [ 1.5 1.5]]
print(np.linalg.solve(a, y))
# [[-3.]
# [ 4.]]
7. np.linalg.eig(e)
정사각 행렬의 고유 값과 고유벡터를 계산한다. 정사각이 아니면 에러가 난다.
print(np.linalg.eig(a))
# (array([-0.37228132, 5.37228132]), array([[-0.82456484, -0.41597356],
# [ 0.56576746, -0.90937671]]))
print(np.linalg.eig(b))
# (array([0., 5.]), array([[-0.70710678, -0.5547002 ],
# [ 0.70710678, -0.83205029]]))
print(np.linalg.eig(e))
# (array([1., 1.]), array([[1., 0.],
# [0., 1.]]))
'파이썬3 노트' 카테고리의 다른 글
pytorch 공부: [nn.Sequential][nn.ModuleList] (3) | 2018.10.16 |
---|---|
모듈/함수 공부: [__hash__()][Collections-Counter] (0) | 2018.08.11 |
numpy 공부: [Indexing] (3) (0) | 2018.08.09 |
numpy 공부: [Indexing] (2) (0) | 2018.08.08 |
numpy 공부: [indexing] (1) (0) | 2018.08.07 |