ここでは機械学習でよく行うことになる行列操作の一つである転置について解説します。
当ページで学ぶこと
- 行列の転置とは
- Pythonで行列の転置
行列の転置とは
行列の転置とは、ある行列の行と列を入れ替えることを意味します。元の行列を \(A\) とすると転置行列は \(A^T\) と表します。
\[
A=
\begin{pmatrix}
a_{11} & a_{12} & a_{13} \\
a_{21} & a_{22} & a_{23}\\
a_{31} & a_{32} & a_{33}
\end{pmatrix}
\ \ \ \
A^T=
\begin{pmatrix}
a_{11} & a_{21} & a_{31} \\
a_{12} & a_{22} & a_{32} \\
a_{13} & a_{23} & a_{33}
\end{pmatrix}
\]
具体例を見てみましょう。以下は正方行列の転置です。
\[
A=
\begin{pmatrix}
1 & 2 & 3\\
4 & 5 & 6 \\
7 & 8 & 9
\end{pmatrix}
\ \ \ \
A^T=
\begin{pmatrix}
1 & 4 & 7 \\
2 & 5 & 8 \\
3 & 6 & 9
\end{pmatrix}
\]
もちろん長方行列でも転置できます。
\[
A=
\begin{pmatrix}
1 & 2 \\
3 & 4 \\
5 & 6
\end{pmatrix}
\ \ \ \
A^T=
\begin{pmatrix}
1 & 3 & 5 \\
2 & 4 & 6
\end{pmatrix}
\]
なお対称行列は、転置しても何も変わりません。
\[
A=
\begin{pmatrix}
1 & 0 & 0\\
0 & 2 & 0 \\
0 & 0 & 3
\end{pmatrix}
\ \ \ \
A^T=
\begin{pmatrix}
1 & 0 & 0 \\
0 & 2 & 0 \\
0 & 0 & 3
\end{pmatrix}
\]
Pythonで行列の転置
PythonではNumPy の T
属性を使って転置することが可能です。
# NumPy のインポート
import numpy as np
# 行列の定義
A = np.array([[1,2],[3,4],[5,6]])
print(A)
# 行列の転置
C = A.T
print(C)