Python
 Computer >> コンピューター >  >> プログラミング >> Python

SciPyを使用して、Pythonで行列の固有値と固有ベクトルを計算するにはどうすればよいですか?


固有ベクトルと固有値は、多くの状況で使用されます。ドイツ語で「Eigen」という言葉は、「自分自身」または「典型的」を意味します。固有ベクトルは「特性ベクトル」とも呼ばれます。データセットに対して何らかの変換を実行する必要があるが、データセット内のデータの方向が変更されてはならないという条件が与えられたとします。これは、固有ベクトルと固有値を使用できる場合です。

正方行列(行数が列数に等しい行列)が与えられると、固有値と固有ベクトルは次の方程式を満たします。

SciPyを使用して、Pythonで行列の固有値と固有ベクトルを計算するにはどうすればよいですか?

固有ベクトルは、固有値を見つけた後に計算されます。

−固有値は3次元以上でもうまく機能します。

SciPyは、これらの数学的計算を手動で実行する代わりに、「eig」と呼ばれるライブラリ内の関数を提供します。これは、固有値と固有ベクトルの計算に役立ちます。

「eig」関数の構文

scipy.linalg.eig(matrix)

「eig」関数の使用方法を見てみましょう-

from scipy import linalg
import numpy as np
my_arr = np.array([[5,7],[11,3]])
eg_val, eg_vect = linalg.eig(my_arr)
print("The Eigenvalues are :")
print(eg_val)
print("The Eigenvectors are :")
print(eg_vect)

出力

The Eigenvalues are :
[12.83176087+0.j -4.83176087+0.j]
The Eigenvectors are :
[[ 0.66640536 -0.57999285]
[ 0.74558963 0.81462157]]

説明

  • 必要なライブラリがインポートされます。
  • Numpyライブラリを使用して、特定の値を含む行列が定義されます。
  • 行列は、行列の固有値と固有ベクトルを計算する「eig」関数にパラメーターとして渡されます。
  • これらの計算データは2つの異なる変数に保存されます。
  • この出力はコンソールに表示されます。

  1. 変数の1つがPythonの離散値である場合、「implot」関数を使用して値をデータに適合させるにはどうすればよいですか?

    回帰モデルが構築されているとき、多重共線性がチェックされます。これは、連続変数のすべての異なる組み合わせの間に存在する相関関係を理解する必要があるためです。変数間に多重共線性が存在する場合は、それがデータから削除されていることを確認する必要があります。 ここで、「regpot」と「implot」の機能が機能します。これらは、線形回帰における変数間の線形関係を視覚化するのに役立ちます。 「regplot」関数は、さまざまな形式の変数「x」と「y」の値を受け入れます。これには、numpy配列、pandasシリーズオブジェクト、変数への参照、またはpandasデータフレームからの値が含まれます。

  2. SciPyを使用してPythonで行列の行列式の値を計算するにはどうすればよいですか?

    行列式の値は、行列または複数の次元を持つ配列で計算できます。 マリックス/アレイをよりよく理解する必要がある場合があります。これは、行列式操作が必要になる場所です。 SciPyは、「線形代数」の略である「linalg」クラスに存在する「det」という名前の関数を提供します。 「det」関数の構文 scipy.linalg.det(matrix) 「行列」は、行列式の値を見つけるために「det」関数に渡されるパラメーターです。 この関数は、行列/配列を引数として渡すことで呼び出すことができます。 上の図では、「a」、「b」、「c」、および「d」が行列の数値であると想定していま