영벡터 : 원소가 모두 0인 행렬
np.zeros(2)
>> 0벡터가 2개인 1차원 배열 생성
np.zeros((3,3))
>> 3x3의 0행렬 생성 (튜플 형태로 넣어야함)
일벡터 : 원소가 모두 1인 행렬
np.ones(2)
>> 1벡터가 2개인 1차원 배열 생성
np.ones((3,3))
>> 3x3 1로 채워진 행렬 생성
대각행렬 (diagonal) : 대각성분을 제외한 원소가 모두 0인 행렬
np.diag((2,4))
>> 대각성분이 2,4인 대각행렬 생성
항등행렬 (identity) : 대각 성분이 모두 1인 대각행렬
np.eye(2)
>> 2x2 항등 행렬
np.eye(2, dtype = int)
>> 2x2 항등 행렬 (data type이 int임)
행렬 x 행렬 (dot product)
mat1 = np.array([[1,2,3], [4,5,6]])
mat2 = np.array([[3,1],[0,2]])
mat1.dot(mat2)
>> 메소드 dot
mat1 @ mat2
>> 연산자 @
trace : 대각 성분들의 합
np.trace()
위 행렬의 trace는 1 + 5 + 9 = 15
행렬식 : determinant
np.linalg.det() >> linear allgebra + determinant
a.linalg.det() << 이렇게 쓰면 안됨
행렬식은 정방행렬만 구할 수 있다.
ab = np.array([[1,2],[3,4]])
np.linalg.det(ab)
-2.0000000000000004
역행렬 : inverse matrix
np.linalg.inv()
사용
고유값 (eigenvalue) : 특정 벡터와 방향이 같지만 크기가 다른 벡터에 대해 그 확장 비율(ratio)를 고유값(람다)라고 한다. 람다는 스칼라값이다.
고유벡터 (eigenvector) : spend 되는 영역을 고유벡터라고 한다.
np.linalg.eig(a)