행렬은 벡터를 원소로 가지는 2차원 배열( n x m 행렬)
행렬은 행(row)과 열(column)이라는 인덱스(index)를 가짐
열 벡터 : ~ 로이 루어진 벡터
행 벡터 : ~ 로이 루어진 벡터
# numpy array
X = np.array([[1,-,2,3],[7,5,0],[-2,-1,2]])
# 3x3 matrix
같은 모양을 가지면 덧셈, 뺄셈 연산, 성분곱(element-wise) 가능
성분곱 표시 :
스칼라곱은 행렬의 각 원소에 스칼라값을 곱함
행렬 곱셈(matrix multiplication) : i번째 행 벡터와 j번째 열벡터 사이의 내적 :
X = np.array([[1,2,3],[7,5,0]])
Y = np.array([[0,1],[1,-1],[-2,1]])
# numpy 행렬곱셈 : @ 연산 사용
X @ Y
>> array([[-8, 6],[5,2]])
주의
어떤 행렬 A의 연산을 거꾸로 되돌리는 행렬을 역행렬(inverse matrix)라고 부르고 라 표기
역행렬은 행과 열의 개수가 같고, 행렬식(determinant)이 0이 아닌 경우에만 계산 가능
행렬 A와 A의 역행렬의 연산 결과는 I라는 항등행렬(identity matrix, 대각성분은 1 나머지는 0)이 출력됨
numpy에서 행렬식 구하는 방법 : np.linalg.inv()
만약, 행과 열이 다르게 되면 역행렬을 구할 방법은 없는지?