numpy.linalg --- 線形代数ルーチン¶
numpy.linalg サブモジュールは、numpy.ndarray オブジェクトに対して動作する線形代数ルーチンを少数提供します。行列に対して動作する関数は2次元配列を必要とし、異なる次元数の配列を渡すと ValueError が送出されます。複素数の dtype はこのサブモジュールではサポートされていません。
関数¶
- numpy.linalg.cholesky(A: ndarray) ndarray¶
正定値な対称正方行列のコレスキー分解を計算します。
- パラメータ:
A -- 正定値かつ対称な2次元正方行列。
- 戻り値:
A = L @ L.Tとなる下三角のnumpy.ndarrayL。- 例外:
ValueError -- A が正方行列でない、対称でない、または正定値でない場合。
- numpy.linalg.det(m: ndarray) float¶
正方行列の行列式を計算します。
- パラメータ:
m -- 2次元の正方行列。
- 戻り値:
Python の
floatとしての m の行列式。入力が整数配列であっても、戻り値は常に浮動小数点数です。- 例外:
ValueError -- m が正方行列でない場合。
計算は部分ピボット選択付きのガウスの消去法によって実行されます。
- numpy.linalg.eig(m: ndarray) tuple[ndarray, ndarray]¶
実対称正方行列の固有値と固有ベクトルを計算します。
- パラメータ:
m -- 2次元の実対称正方行列。
- 戻り値:
2 要素タプル
(eigenvalues, eigenvectors)。eigenvaluesは長さNの1次元配列で、eigenvectorsはN行N列の配列であり、その列が対応する固有ベクトルです。- 例外:
ValueError -- m が正方行列でない、対称でない、またはヤコビ回転の反復が収束しない場合。
- numpy.linalg.inv(m: ndarray) ndarray¶
正方行列の逆行列を計算します。
- パラメータ:
m -- 2次元の正方行列。
- 戻り値:
浮動小数点数の
numpy.ndarrayとしての m の逆行列。- 例外:
ValueError -- m が正方行列でない、または特異である場合。
逆行列の計算はガウス・ジョルダンの消去法によって実行されます。
- numpy.linalg.norm(x: ndarray, axis: int | None = None) float | ndarray¶
ベクトルまたは行列の 2 ノルムを計算します。
- パラメータ:
x --
numpy.ndarray、tuple、list、またはrange。axis -- ノルムを計算する軸(省略可能)。
None(デフォルト)の場合、ノルムは平坦化された入力に対して取られ、単一のfloatが返されます。それ以外の場合、ノルムはその軸に沿って縮約され、numpy.ndarrayが返されます。
- 戻り値:
Python の
float(axis がNoneの場合、または x が ndarray 以外の反復可能オブジェクトの場合)、またはその軸が除去されたnumpy.ndarrayのいずれか。
2 ノルムは、数値的に安定した移動平均を用いて
sqrt(sum(x*x))として計算されるため、この演算は入力のサイズに比例した追加の記憶領域を必要としません。
- numpy.linalg.qr(m: ndarray, mode: str = 'reduced') tuple[ndarray, ndarray]¶
行列を正規直交行列と上三角行列の積として分解します。
- パラメータ:
m -- 形状が
(M, N)の2次元行列。mode --
'reduced'(デフォルト)または'complete'のいずれか。'complete'モードでは、Qは形状(M, M)を持ち、Rは形状(M, N)を持ちます。'reduced'モードでは、QとRはそれぞれ先頭のmin(M, N)列および行に切り詰められます。
- 戻り値:
m == Q @ Rとなるnumpy.ndarrayオブジェクトの 2 要素タプル(Q, R)で、Qは正規直交、Rは上三角です。- 例外:
TypeError -- m が
numpy.ndarrayでない場合。ValueError -- m が2次元でない、または mode が許容される値のいずれでもない場合。
分解は連続したギブンス回転を介して実装されています。