配列 ベクトル 行列 統計

Pythonで転置行列を求める(ベクトルを「転置」するときはreshapeを使う)

最終更新日 2023.02.18

転置行列は行列に T をつけるだけです。

import numpy as np

A = np.array([[1, 2], [4, 5]])
B = np.array([[3, 1, 5], [1, 1, 1], [0, 1, 2]])

C = A.T
print(C)
# [[1 4]
#  [2 5]]

D = B.T
print(D)
# [[3 1 0]
#  [1 1 1]
#  [5 1 2]]

ベクトルの転置

ベクトルに転置という概念はありませんが、ベクトルを行列とみなして、その転置行列を求めたいときはどうすればいいでしょうか? NumPy の array はベクトルと行列の書き方に違いがあるため、ベクトルに T をつけてもなにも起きません。

import numpy as np

A = np.array([1, 2])
B = np.array([3, 1, 5])

C = A.T
print(C)
# [1 2]

D = B.T
print(D)
# [3 1 5]

ベクトルを行列に変換する必要があります。これは NumPy の reshape で行います。1 番目の引数に変換したい配列(ベクトル、行列)を入れて、2 番目の引数に行列の次元を入れます。

2 次元ベクトルを (1, 2) 行列にするときは reshape(A, (1, 2)) とします。

import numpy as np

A = np.array([5, 9])

C = np.reshape(A, (1, 2))
D = C.T

print(C)
# [[5 9]]

print(D)
# [[5]
#  [9]]

一度行列にすれば、その行列を転置できます。