기본 콘텐츠로 건너뛰기

[matplotlib] 등고선(Contour)

[Linear Algebra] 전치행렬(Transposed matrix)

전치 행렬(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]]

댓글