Python Cookbook [Performing Matrix and Linear Algebra Calculations : 行列、線形代数計算の実行] 投稿一覧へ戻る
Published 2020年4月13日19:57 by mootaro23
SUPPORT UKRAINE
- Your indifference to the act of cruelty can thrive rogue nations like Russia -
# Problem:
# 行列の乗算、行列式を求める、一次方程式を解くといった行列および線形代数上の演算を実行したい。
# Solution:
# NumPy ライブラリの matrix オブジェクトを利用します。
# 行列は array オブジェクトと似通っていますが、線形代数学の規則に基づき演算を実行します。
import numpy as np
m = np.matrix([[1, -2, 3], [0, 4, 5], [7, 8, -9]])
m
# matrix([[ 1, -2, 3],
# [ 0, 4, 5],
# [ 7, 8, -9]])
# 転置行列を返します
m.T
# matrix([[ 1, 0, 7],
# [-2, 4, 8],
# [ 3, 5, -9]])
# 逆行列を返します
m.I
# matrix([[ 0.33043478, -0.02608696, 0.09565217],
# [-0.15217391, 0.13043478, 0.02173913],
# [ 0.12173913, 0.09565217, -0.0173913 ]])
# ベクターを定義し乗算を実行します
v = np.matrix([[2], [3], [4]])
v
# matrix([[2],
# [3],
# [4]])
m * v
# matrix([[ 8],
# [32],
# [ 2]])
# numpy.linalg サブパッケージを利用すればより多種の演算を実行できます。
import numpy.linalg
# 行列式を求めます
numpy.linalg.det(m)
# -229.99999999999983
# 固有値を求めます
numpy.linalg.eigvals(m)
# array([-13.11474312, 2.75956154, 6.35518158])
# mx = v における x を求めます
x = numpy.linalg.solve(m, v)
x
# matrix([[0.96521739],
# [0.17391304],
# [0.46086957]])
m * x
# matrix([[2.],
# [3.],
# [4.]])
v
# matrix([[2],
# [3],
# [4]])
# Machine Learning (機械学習) の勉強をしていると好き嫌い、得意苦手にかかわらずどうしても線形代数の知識が多かれ少なかれ必要になってきます。
# Python において行列やベクターの演算を行ううえでの第一の友はやはり NumPy でしょう。
# がんばって勉強するしかありませんね。
# 行列の乗算、行列式を求める、一次方程式を解くといった行列および線形代数上の演算を実行したい。
# Solution:
# NumPy ライブラリの matrix オブジェクトを利用します。
# 行列は array オブジェクトと似通っていますが、線形代数学の規則に基づき演算を実行します。
import numpy as np
m = np.matrix([[1, -2, 3], [0, 4, 5], [7, 8, -9]])
m
# matrix([[ 1, -2, 3],
# [ 0, 4, 5],
# [ 7, 8, -9]])
# 転置行列を返します
m.T
# matrix([[ 1, 0, 7],
# [-2, 4, 8],
# [ 3, 5, -9]])
# 逆行列を返します
m.I
# matrix([[ 0.33043478, -0.02608696, 0.09565217],
# [-0.15217391, 0.13043478, 0.02173913],
# [ 0.12173913, 0.09565217, -0.0173913 ]])
# ベクターを定義し乗算を実行します
v = np.matrix([[2], [3], [4]])
v
# matrix([[2],
# [3],
# [4]])
m * v
# matrix([[ 8],
# [32],
# [ 2]])
# numpy.linalg サブパッケージを利用すればより多種の演算を実行できます。
import numpy.linalg
# 行列式を求めます
numpy.linalg.det(m)
# -229.99999999999983
# 固有値を求めます
numpy.linalg.eigvals(m)
# array([-13.11474312, 2.75956154, 6.35518158])
# mx = v における x を求めます
x = numpy.linalg.solve(m, v)
x
# matrix([[0.96521739],
# [0.17391304],
# [0.46086957]])
m * x
# matrix([[2.],
# [3.],
# [4.]])
v
# matrix([[2],
# [3],
# [4]])
# Machine Learning (機械学習) の勉強をしていると好き嫌い、得意苦手にかかわらずどうしても線形代数の知識が多かれ少なかれ必要になってきます。
# Python において行列やベクターの演算を行ううえでの第一の友はやはり NumPy でしょう。
# がんばって勉強するしかありませんね。
この記事に興味のある方は次の記事にも関心を持っているようです...
- People who read this article may also be interested in following articles ... -