numpy.linalg — Routine di algebra lineare

Il sottomodulo numpy.linalg fornisce una piccola selezione di routine di algebra lineare che operano su oggetti numpy.ndarray. Le funzioni che operano su matrici richiedono array bidimensionali; passare array di dimensionalità diversa solleva un ValueError. I dtype complessi non sono supportati da questo sottomodulo.

Funzioni

numpy.linalg.cholesky(A: ndarray) ndarray

Calcola la decomposizione di Cholesky di una matrice quadrata simmetrica e definita positiva.

Parametri:

A – una matrice quadrata bidimensionale, simmetrica e definita positiva.

Ritorna:

una numpy.ndarray triangolare inferiore L tale che A = L @ L.T.

Solleva:

ValueError – se A non è quadrata, non è simmetrica oppure non è definita positiva.

numpy.linalg.det(m: ndarray) float

Calcola il determinante di una matrice quadrata.

Parametri:

m – una matrice quadrata bidimensionale.

Ritorna:

il determinante di m come float di Python. Il valore restituito è sempre un float, anche quando l’input è un array di interi.

Solleva:

ValueError – se m non è quadrata.

Il calcolo viene eseguito mediante eliminazione di Gauss con pivoting parziale.

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

Calcola gli autovalori e gli autovettori di una matrice quadrata reale e simmetrica.

Parametri:

m – una matrice quadrata bidimensionale, reale e simmetrica.

Ritorna:

una 2-tupla (eigenvalues, eigenvectors). eigenvalues è un array monodimensionale di lunghezza N; eigenvectors è un array N-per-N le cui colonne sono i corrispondenti autovettori.

Solleva:

ValueError – se m non è quadrata, non è simmetrica, oppure se l’iterazione delle rotazioni di Jacobi non converge.

numpy.linalg.inv(m: ndarray) ndarray

Calcola l’inversa di una matrice quadrata.

Parametri:

m – una matrice quadrata bidimensionale.

Ritorna:

l’inversa di m come numpy.ndarray di float.

Solleva:

ValueError – se m non è quadrata oppure è singolare.

L’inversione viene eseguita mediante eliminazione di Gauss-Jordan.

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

Calcola la norma 2 di un vettore o di una matrice.

Parametri:
  • x – una numpy.ndarray, una tuple, una list oppure un range.

  • axis – asse opzionale lungo il quale viene calcolata la norma. Se None (valore predefinito), la norma viene calcolata sull’input appiattito e viene restituito un singolo float. Altrimenti la norma viene ridotta lungo tale asse e viene restituita una numpy.ndarray.

Ritorna:

un float di Python (quando axis è None o quando x è un iterabile diverso da un ndarray) oppure una numpy.ndarray con quell’asse rimosso.

La norma 2 viene calcolata come sqrt(sum(x*x)) utilizzando una media incrementale numericamente stabile, in modo che l’operazione non richieda spazio di memorizzazione aggiuntivo proporzionale alla dimensione dell’input.

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

Fattorizza una matrice come prodotto di una matrice ortonormale e di una matrice triangolare superiore.

Parametri:
  • m – una matrice bidimensionale di forma (M, N).

  • mode'reduced' (predefinito) oppure 'complete'. In modalità 'complete', Q ha forma (M, M) e R ha forma (M, N). In modalità 'reduced', Q e R sono troncate rispettivamente alle prime min(M, N) colonne e righe.

Ritorna:

una 2-tupla (Q, R) di oggetti numpy.ndarray tali che m == Q @ R, con Q ortonormale e R triangolare superiore.

Solleva:

La decomposizione è implementata tramite rotazioni di Givens successive.