numpy.linalg — Rutiny lineární algebry

Podmodul numpy.linalg poskytuje malý výběr rutin lineární algebry, které pracují s objekty numpy.ndarray. Funkce pracující s maticemi vyžadují dvourozměrná pole; předání polí jiné dimenzionality vyvolá výjimku ValueError. Komplexní datové typy tento podmodul nepodporuje.

Funkce

numpy.linalg.cholesky(A: ndarray) ndarray

Vypočítá Choleského rozklad pozitivně definitní, symetrické čtvercové matice.

Parametry:

A – pozitivně definitní, symetrická, dvourozměrná čtvercová matice.

Vrací:

dolní trojúhelníkový objekt numpy.ndarray L takový, že A = L @ L.T.

Vyvolá:

ValueError – pokud A není čtvercová, není symetrická nebo není pozitivně definitní.

numpy.linalg.det(m: ndarray) float

Vypočítá determinant čtvercové matice.

Parametry:

m – dvourozměrná čtvercová matice.

Vrací:

determinant m jako Python float. Návratová hodnota je vždy float, i když je vstupem celočíselné pole.

Vyvolá:

ValueError – pokud m není čtvercová.

Výpočet se provádí Gaussovou eliminací s částečnou volbou hlavního prvku.

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

Vypočítá vlastní čísla a vlastní vektory reálné symetrické čtvercové matice.

Parametry:

m – dvourozměrná, reálná, symetrická čtvercová matice.

Vrací:

dvojice (eigenvalues, eigenvectors). eigenvalues je jednorozměrné pole délky N; eigenvectors je pole o rozměrech N-krát-N, jehož sloupce jsou odpovídající vlastní vektory.

Vyvolá:

ValueError – pokud m není čtvercová, není symetrická nebo pokud iterace Jacobiho rotace nekonverguje.

numpy.linalg.inv(m: ndarray) ndarray

Vypočítá inverzi čtvercové matice.

Parametry:

m – dvourozměrná čtvercová matice.

Vrací:

inverze m jako float numpy.ndarray.

Vyvolá:

ValueError – pokud m není čtvercová nebo je singulární.

Inverze se provádí Gauss-Jordanovou eliminací.

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

Vypočítá 2-normu vektoru nebo matice.

Parametry:
  • x – objekt numpy.ndarray, tuple, list nebo range.

  • axis – volitelná osa, podél které se norma počítá. Pokud je None (výchozí), norma se bere přes zploštělý vstup a vrací se jediný float. Jinak se norma redukuje podél této osy a vrací se numpy.ndarray.

Vrací:

buď Python float (když je axis None nebo když je x iterovatelný objekt jiný než ndarray), nebo numpy.ndarray s odebranou touto osou.

2-norma se vypočítá jako sqrt(sum(x*x)) pomocí numericky stabilního klouzavého průměru, takže operace nevyžaduje dodatečné úložiště úměrné velikosti vstupu.

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

Rozloží matici na součin ortonormální matice a horní trojúhelníkové matice.

Parametry:
  • m – dvourozměrná matice tvaru (M, N).

  • mode – buď 'reduced' (výchozí), nebo 'complete'. V režimu 'complete'Q tvar (M, M) a R má tvar (M, N). V režimu 'reduced' jsou Q a R oříznuty na vedoucích min(M, N) sloupců, resp. řádků.

Vrací:

dvojice (Q, R) objektů numpy.ndarray taková, že m == Q @ R, kde Q je ortonormální a R je horní trojúhelníková.

Vyvolá:

Rozklad je implementován pomocí postupných Givensových rotací.