numpy.linalg — Routinen für lineare Algebra

Das Submodul numpy.linalg stellt eine kleine Auswahl an Routinen für die lineare Algebra bereit, die auf numpy.ndarray-Objekten arbeiten. Funktionen, die auf Matrizen operieren, erfordern zweidimensionale Arrays; die Übergabe von Arrays einer anderen Dimensionalität löst einen ValueError aus. Komplexe dtypes werden von diesem Submodul nicht unterstützt.

Funktionen

numpy.linalg.cholesky(A: ndarray) ndarray

Berechnet die Cholesky-Zerlegung einer positiv definiten, symmetrischen quadratischen Matrix.

Parameter:

A – eine positiv definite, symmetrische, zweidimensionale quadratische Matrix.

Rückgabe:

eine untere Dreiecksmatrix numpy.ndarray L, sodass A = L @ L.T gilt.

Verursacht:

ValueError – wenn A nicht quadratisch, nicht symmetrisch oder nicht positiv definit ist.

numpy.linalg.det(m: ndarray) float

Berechnet die Determinante einer quadratischen Matrix.

Parameter:

m – eine zweidimensionale quadratische Matrix.

Rückgabe:

die Determinante von m als Python-float. Der Rückgabewert ist immer ein Float, auch wenn die Eingabe ein Integer-Array ist.

Verursacht:

ValueError – wenn m nicht quadratisch ist.

Die Berechnung erfolgt durch Gauß-Elimination mit partieller Pivotisierung.

numpy.linalg.eig(m: ndarray) tuple[ndarray, ndarray]

Berechnet die Eigenwerte und Eigenvektoren einer reellen symmetrischen quadratischen Matrix.

Parameter:

m – eine zweidimensionale, reelle, symmetrische quadratische Matrix.

Rückgabe:

ein 2-Tupel (eigenvalues, eigenvectors). eigenvalues ist ein eindimensionales Array der Länge N; eigenvectors ist ein N-mal-N-Array, dessen Spalten die zugehörigen Eigenvektoren sind.

Verursacht:

ValueError – wenn m nicht quadratisch, nicht symmetrisch ist oder wenn die Jacobi-Rotations-Iteration nicht konvergiert.

numpy.linalg.inv(m: ndarray) ndarray

Berechnet die Inverse einer quadratischen Matrix.

Parameter:

m – eine zweidimensionale quadratische Matrix.

Rückgabe:

die Inverse von m als Float-numpy.ndarray.

Verursacht:

ValueError – wenn m nicht quadratisch oder singulär ist.

Die Invertierung erfolgt durch Gauß-Jordan-Elimination.

numpy.linalg.norm(x: ndarray, axis: int | None = None) float | ndarray

Berechnet die 2-Norm eines Vektors oder einer Matrix.

Parameter:
  • x – ein numpy.ndarray, tuple, list oder range.

  • axis – optionale Achse, entlang der die Norm berechnet wird. Bei None (Standardwert) wird die Norm über die abgeflachte Eingabe gebildet und ein einzelnes float zurückgegeben. Andernfalls wird die Norm entlang dieser Achse reduziert und ein numpy.ndarray zurückgegeben.

Rückgabe:

entweder ein Python-float (wenn axis None ist oder wenn x ein anderes Iterable als ein ndarray ist) oder ein numpy.ndarray, bei dem diese Achse entfernt wurde.

Die 2-Norm wird als sqrt(sum(x*x)) unter Verwendung eines numerisch stabilen laufenden Mittelwerts berechnet, sodass die Operation keinen zusätzlichen Speicher proportional zur Größe der Eingabe benötigt.

numpy.linalg.qr(m: ndarray, mode: str = 'reduced') tuple[ndarray, ndarray]

Zerlegt eine Matrix als Produkt einer orthonormalen Matrix und einer oberen Dreiecksmatrix.

Parameter:
  • m – eine zweidimensionale Matrix der Form (M, N).

  • mode – entweder 'reduced' (Standard) oder 'complete'. Im Modus 'complete' hat Q die Form (M, M) und R die Form (M, N). Im Modus 'reduced' werden Q und R auf die führenden min(M, N) Spalten bzw. Zeilen gekürzt.

Rückgabe:

ein 2-Tupel (Q, R) von numpy.ndarray-Objekten, sodass m == Q @ R gilt, wobei Q orthonormal und R eine obere Dreiecksmatrix ist.

Verursacht:

Die Zerlegung wird über aufeinanderfolgende Givens-Rotationen implementiert.