전치 행렬(Transposed matrix)
m×n 형태의 행렬 A의 행과 열을 교환한 행렬을 A의 전치 행렬이라 하며 AT로 나타냅니다. 그 전치 행렬의 형태는 n×m 입니다. 행렬 A와 전치 행렬 사이에 식 1의 관계가 성립합니다.
Ai,j = ATj,i | (식 1) |
전치 행렬은 numpy array 객체의 속성 .T 또는 함수 transpose()를 사용하여 생성할 수 있습니다.
A=np.array([[2, 4, 9], [3, 6, 7]]) print(A)
[[2 4 9] [3 6 7]]
print(np.transpose(A))
[[2 3] [4 6] [9 7]]
print(A.T)
[[2 3] [4 6] [9 7]]
식 2와 같이 전치 행렬을 다시 전치시키면 원시행렬(original matrix)이 됩니다.
(AT)T = A | (식 2) |
print(A.T.T==A)
[[ True True True] [ True True True]]
두 행렬의 행렬곱의 전치 행렬은 식 3과 같이 계산됩니다.
(A·B)T = BT·AT | (식 3) |
다음 코드에서 임의의 행렬 객체를 생성하기 위해 numpy.random 모듈의 randint()
함수를 사용하였습니다. 생성된 랜덤수의 재현성을 위해 numpy.random.seed()
함수를 사용하였습니다.
np.random.seed(0) B=np.random.randint(-10, 10, (3,3)) print(B)
[[ 2 5 -10] [ -7 -7 -3] [ -1 9 8]]
# A·B AB=A@B # BT·AT BtAt=np.dot(B.T, A.T) print(np.equal(AB.T, BtAt))
[[ True True] [ True True] [ True True]]
댓글
댓글 쓰기