1. ホーム
  2. プログラマーのための線形代数
  3. 行列の操作
  4. 転置

転置

ここでは機械学習でよく行うことになる行列操作の一つである転置について解説します。

当ページで学ぶこと

  • 行列の転置とは
  • 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 属性を使って転置することが可能です。

In [1]:
# NumPy のインポート
import numpy as np

# 行列の定義
A = np.array([[1,2],[3,4],[5,6]])
print(A)
[[1 2]
 [3 4]
 [5 6]]
In [2]:
# 行列の転置
C = A.T
print(C)
[[1 3 5]
 [2 4 6]]