個人的には、行列は最小二乗法で近似式を求めるときや、アフィン変換を用いて画像の表示やリサイズを行う際に用いるのですが、この行列の演算は、PythonではNumPyを用いて行います。
NumPyのインポート
import numpy as np
行列の生成(array)
# 行列の生成
mat = np.array([[1, 2], [3, 4], [5, 6]])
print(mat)
(実行結果)
[[1 2]
[3 4]
[5 6]]
行列の積(matmul)
matA = np.array([[1, 2], [3, 4]])
matB = np.array([[5, 6], [7, 8]])
matAB = np.matmul(matA, matB)
print(matAB)
(実行結果)
[[19 22]
[43 50]]
単位行列(identity)
matI = np.identity(3)
print(matI)
(実行結果)
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
零行列(zeros)
mat = np.zeros((3, 4))
print(mat)
(実行結果)
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
逆行列(linalg.inv)
mat = np.array([[1, 2], [3, 4]])
matInv = np.linalg.inv(mat)
print(matInv)
(実行結果)
[[-2. 1. ]
[ 1.5 -0.5]]
擬似逆行列(linalg.pinv)
mat = np.array([[1, 2], [3, 4], [5, 6]])
matInv = np.linalg.pinv(mat)
print(matInv)
(実行結果)
[[-1.33333333 -0.33333333 0.66666667]
[ 1.08333333 0.33333333 -0.41666667]]
転置行列(.T)
mat = np.array([[1, 2], [3, 4]])
matT = mat.T
print(matT)
(実行結果)
[[1 3]
[2 4]]
行列要素ごとの積(multiply)
matA = np.array([[1, 2], [3, 4]])
matB = np.array([[5, 6], [7, 8]])
matAB = np.multiply(matA, matB)
print(matAB)
(実行結果)
[[ 5 12]
[21 32]]