numpy의 eye() 함수로 간단하게 단위행렬을 구현할 수 있다.
[In]
# 단위행렬
import numpy as np
print(np.eye(2)) # 2x2 단위행렬
print()
print(np.eye(3)) # 3x3 단위행렬
print()
print(np.eye(4)) # 4x4 단위행렬
[Out]
[[1. 0.]
[0. 1.]]
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
numpy의 linalg.det() 함수에 의해 행렬식을 구할 수 있다.
[In]
# 행렬식
import numpy as np
a = np.array([[1,2],
[3,4]]) # 2x2 행렬
b = np.array([[1,2],
[0,0]]) # 2x2 행렬
det_a = np.linalg.det(a) # 행렬식
det_b = np.linalg.det(b) # 행렬식
print(det_a) # 행렬식이 0이 아닌 경우 -> 역행렬 존재!
print(det_b) # 행렬식이 0이 되는 경우 -> 역행렬 존재하지 않음
[Out]
-2.0000000000000004
0.0
numpy의 linalg.inv() 함수로 역행렬을 구할 수 있다.
[In]
# 역행렬 구현
import numpy as np
a = np.array([[1,2],
[3,4]]) # 2x2 행렬
b = np.array([[1,2],
[0,0]]) # 2x2 행렬
a_inv = np.linalg.inv(a)
# b_inv = np.linalg.inv(b)
# b는 역행렬이 존재하지 않으므로 에러가 발생
print(a_inv)
# print(b_inv)
[Out]
[[-2. 1. ]
[ 1.5 -0.5]]