NumPyで逆行列を求める方法 – linalg.inv の使い方

numpy で逆行列を求めるときは、numpy.linalg.inv を使います。ここではこの関数の使い方についてわかりやすく解説していきます。また復習として、逆行列とは何かということも解説します。それでは始めましょう。

目次

1. 逆行列とは

逆行列とは、ある行列 \(A\) で線形変換した空間を元に戻す行列 \(A^{-1}\) のことです。そのため、ある行列とその逆行列は、\(A^{-1}A=AA^{-1}=I\) という関係にあります。以下のアニメーションで、視覚的に確認することができます。

詳しくは『逆行列とは何か?その求め方・条件・性質の徹底解説』で解説しているので、復習したい方はぜひご覧ください。

逆行列は手計算で求めるのは少し面倒ですが、numpy.linalg.inv 関数を使えば、あっという間に計算してくれます。

2. linalg.inv の使い方

numpy.linalg.inv の書き方は以下の通りです。なお慣習的に、linalg モジュールは import numpy.linalg as LA とインポートします。そのため、このモジュール内の関数を使うときは LA.inv() 書きます。

numpy.linalg.inv

書き方

LA.inv(a)

パラメーター

引数 解説
a   array_like     逆行列を求める行列を入力します。

公式ドキュメント:numpy.linalg.inv

使い方は簡単です。逆行列を求めたい行列を渡すだけです。

例えば、以下は2次正方行列の逆行列を求めています。

In [1]:
import numpy as np
import numpy.linalg as LA
A=np.array([[2,-1],[-1,3]])
LA.inv(A)
Out[1]:
array([[0.6, 0.2],
       [0.2, 0.4]])

次に3次正方行列の逆行列も求めてみましょう。

In [2]:
A=np.array([[2,-1,2],[-1,3,0],[-1,-1,-2]])
LA.inv(A)
Out[2]:
array([[ 3. ,  2. ,  3. ],
       [ 1. ,  1. ,  1. ],
       [-2. , -1.5, -2.5]])

簡単ですね。もちろん、どれだけ大きなサイズの行列だとしても瞬時に求めてくれます。

なお逆行列が存在するのは、元の行列が正方行列であり、正則行列である場合です。それ以外の場合はエラーになります。

3. まとめ

以上が numpy で逆行列を求める方法です。逆行列はよく使うので覚えておきましょう。

Python初心者におすすめのプログラミングスクール

「未経験からでもPythonを学べるプログラミングスクールを探しているけど、色々ありすぎてわからない」なら、次の3つのプログラミングスクールから選んでおけば間違いはありません。

Aidemy Premium:全くの初心者ができるだけ効率よく短期間で実務的に活躍できるAI人材になることを目的とした講座。キャリアカウンセリングや転職エージェントの紹介などの転職支援も充実しており、受講者の転職成功率が高い。

AIジョブカレPythonの基本をおさえた人が、実際に機械学習やディープラーニングを活用できるようになるための講座。転職補償型があるなどキャリア支援の内容が非常に手厚く、講師の質も最高クラス。コスパ最高。Python初心者用の対策講座もある。

データミックスプログラミング経験者のビジネスマンが、更なるキャリアアップのためにデータの処理方法を学んでデータサイエンティストになるための講座。転職だけでなく起業やフリーランスとして独立する人も多い。Python初心者用の対策講座もある。

特に、あなたが以下のような目標を持っているなら、この中から選んでおけば間違いはないでしょう。

・未経験からPythonエンジニアとして就職・転職したい
・AIエンジニアやデータサイエンティストとしてキャリアアップしたい
・起業やフリーランスを視野に入れたい

理由は「Python初心者のためのおすすめプログラミングスクール3選」で解説しています。



よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次
閉じる