numpy.linalg — Routines d’algèbre linéaire

Le sous-module numpy.linalg fournit une petite sélection de routines d’algèbre linéaire qui opèrent sur des objets numpy.ndarray. Les fonctions qui opèrent sur des matrices requièrent des tableaux bidimensionnels ; passer des tableaux d’une dimensionnalité différente lève une exception ValueError. Les dtypes complexes ne sont pas pris en charge par ce sous-module.

Fonctions

numpy.linalg.cholesky(A: ndarray) ndarray

Calcule la décomposition de Cholesky d’une matrice carrée symétrique définie positive.

Paramètres:

A – une matrice carrée bidimensionnelle, symétrique et définie positive.

Renvoie:

un numpy.ndarray triangulaire inférieur L tel que A = L @ L.T.

Lève:

ValueError – si A n’est pas carrée, pas symétrique ou pas définie positive.

numpy.linalg.det(m: ndarray) float

Calcule le déterminant d’une matrice carrée.

Paramètres:

m – une matrice carrée bidimensionnelle.

Renvoie:

le déterminant de m sous forme d’un float Python. La valeur renvoyée est toujours un flottant, même lorsque l’entrée est un tableau d’entiers.

Lève:

ValueError – si m n’est pas carrée.

Le calcul est effectué par élimination de Gauss avec pivot partiel.

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

Calcule les valeurs propres et les vecteurs propres d’une matrice carrée réelle symétrique.

Paramètres:

m – une matrice carrée bidimensionnelle, réelle et symétrique.

Renvoie:

un 2-uplet (eigenvalues, eigenvectors). eigenvalues est un tableau unidimensionnel de longueur N ; eigenvectors est un tableau N-par-N dont les colonnes sont les vecteurs propres correspondants.

Lève:

ValueError – si m n’est pas carrée, pas symétrique, ou si l’itération par rotations de Jacobi ne parvient pas à converger.

numpy.linalg.inv(m: ndarray) ndarray

Calcule l’inverse d’une matrice carrée.

Paramètres:

m – une matrice carrée bidimensionnelle.

Renvoie:

l’inverse de m sous forme d’un numpy.ndarray de flottants.

Lève:

ValueError – si m n’est pas carrée ou est singulière.

L’inversion est effectuée par élimination de Gauss-Jordan.

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

Calcule la norme 2 d’un vecteur ou d’une matrice.

Paramètres:
  • x – un numpy.ndarray, un tuple, une list ou un range.

  • axis – axe facultatif le long duquel la norme est calculée. Si None (la valeur par défaut), la norme est prise sur l’entrée aplatie et un unique float est renvoyé. Sinon la norme est réduite le long de cet axe et un numpy.ndarray est renvoyé.

Renvoie:

soit un float Python (lorsque axis vaut None ou lorsque x est un itérable autre qu’un ndarray), soit un numpy.ndarray dont cet axe a été supprimé.

La norme 2 est calculée comme sqrt(sum(x*x)) à l’aide d’une moyenne glissante numériquement stable, de sorte que l’opération ne nécessite pas de stockage supplémentaire proportionnel à la taille de l’entrée.

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

Factorise une matrice comme le produit d’une matrice orthonormale et d’une matrice triangulaire supérieure.

Paramètres:
  • m – une matrice bidimensionnelle de forme (M, N).

  • mode – soit 'reduced' (par défaut), soit 'complete'. En mode 'complete', Q a la forme (M, M) et R a la forme (M, N). En mode 'reduced', Q et R sont tronqués respectivement aux min(M, N) premières colonnes et lignes.

Renvoie:

un 2-uplet (Q, R) d’objets numpy.ndarray tels que m == Q @ R, avec Q orthonormale et R triangulaire supérieure.

Lève:

La décomposition est implémentée au moyen de rotations de Givens successives.