numpy.linalg — Rotinas de álgebra linear

O submódulo numpy.linalg fornece uma pequena seleção de rotinas de álgebra linear que operam sobre objetos numpy.ndarray. As funções que operam sobre matrizes exigem arrays bidimensionais; passar arrays de dimensionalidade diferente levanta um ValueError. Tipos de dados complexos não são suportados por este submódulo.

Funções

numpy.linalg.cholesky(A: ndarray) ndarray

Calcula a decomposição de Cholesky de uma matriz quadrada simétrica e definida positiva.

Parâmetros:

A – uma matriz quadrada bidimensional, simétrica e definida positiva.

Retorna:

uma numpy.ndarray triangular inferior L tal que A = L @ L.T.

Levanta:

ValueError – se A não for quadrada, não for simétrica ou não for definida positiva.

numpy.linalg.det(m: ndarray) float

Calcula o determinante de uma matriz quadrada.

Parâmetros:

m – uma matriz quadrada bidimensional.

Retorna:

o determinante de m como um float do Python. O valor retornado é sempre um float, mesmo quando a entrada é um array de inteiros.

Levanta:

ValueError – se m não for quadrada.

O cálculo é realizado por eliminação gaussiana com pivotamento parcial.

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

Calcula os autovalores e autovetores de uma matriz quadrada real e simétrica.

Parâmetros:

m – uma matriz quadrada bidimensional, real e simétrica.

Retorna:

uma 2-tupla (eigenvalues, eigenvectors). eigenvalues é um array unidimensional de comprimento N; eigenvectors é um array N-por-N cujas colunas são os autovetores correspondentes.

Levanta:

ValueError – se m não for quadrada, não for simétrica ou se a iteração de rotação de Jacobi não convergir.

numpy.linalg.inv(m: ndarray) ndarray

Calcula a inversa de uma matriz quadrada.

Parâmetros:

m – uma matriz quadrada bidimensional.

Retorna:

a inversa de m como uma numpy.ndarray de floats.

Levanta:

ValueError – se m não for quadrada ou for singular.

A inversão é realizada por eliminação de Gauss-Jordan.

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

Calcula a norma 2 de um vetor ou matriz.

Parâmetros:
  • x – uma numpy.ndarray, tuple, list ou range.

  • axis – eixo opcional ao longo do qual a norma é calculada. Se None (o padrão), a norma é tomada sobre a entrada achatada e um único float é retornado. Caso contrário, a norma é reduzida ao longo desse eixo e uma numpy.ndarray é retornada.

Retorna:

ou um float do Python (quando axis é None ou quando x é um iterável diferente de um ndarray) ou uma numpy.ndarray com aquele eixo removido.

A norma 2 é calculada como sqrt(sum(x*x)) usando uma média móvel numericamente estável, de modo que a operação não exige armazenamento adicional proporcional ao tamanho da entrada.

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

Fatora uma matriz como o produto de uma matriz ortonormal e uma matriz triangular superior.

Parâmetros:
  • m – uma matriz bidimensional de formato (M, N).

  • mode – ou 'reduced' (padrão) ou 'complete'. No modo 'complete', Q tem formato (M, M) e R tem formato (M, N). No modo 'reduced', Q e R são truncados, respectivamente, às primeiras min(M, N) colunas e linhas.

Retorna:

uma 2-tupla (Q, R) de objetos numpy.ndarray tal que m == Q @ R, com Q ortonormal e R triangular superior.

Levanta:

A decomposição é implementada por meio de sucessivas rotações de Givens.