numpy.linalg — Procedury algebry liniowej

Podmoduł numpy.linalg udostępnia niewielki zestaw procedur algebry liniowej, które działają na obiektach numpy.ndarray. Funkcje operujące na macierzach wymagają tablic dwuwymiarowych; przekazanie tablic o innej wymiarowości zgłasza wyjątek ValueError. Ten podmoduł nie obsługuje typów zespolonych.

Funkcje

numpy.linalg.cholesky(A: ndarray) ndarray

Oblicza rozkład Choleskiego dodatnio określonej, symetrycznej macierzy kwadratowej.

Parametry:

A – dodatnio określona, symetryczna, dwuwymiarowa macierz kwadratowa.

Zwraca:

dolnotrójkątny numpy.ndarray L taki, że A = L @ L.T.

Wyrzuca:

ValueError – jeśli A nie jest kwadratowa, nie jest symetryczna lub nie jest dodatnio określona.

numpy.linalg.det(m: ndarray) float

Oblicza wyznacznik macierzy kwadratowej.

Parametry:

m – dwuwymiarowa macierz kwadratowa.

Zwraca:

wyznacznik m jako liczba Pythona float. Wartość zwracana jest zawsze liczbą zmiennoprzecinkową, nawet gdy wejściem jest tablica liczb całkowitych.

Wyrzuca:

ValueError – jeśli m nie jest kwadratowa.

Obliczenia są wykonywane metodą eliminacji Gaussa z częściowym wyborem elementu głównego.

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

Oblicza wartości własne i wektory własne rzeczywistej symetrycznej macierzy kwadratowej.

Parametry:

m – dwuwymiarowa, rzeczywista, symetryczna macierz kwadratowa.

Zwraca:

2-krotka (eigenvalues, eigenvectors). eigenvalues jest jednowymiarową tablicą o długości N; eigenvectors jest tablicą N-na-N, której kolumny są odpowiadającymi wektorami własnymi.

Wyrzuca:

ValueError – jeśli m nie jest kwadratowa, nie jest symetryczna lub jeśli iteracja rotacji Jacobiego nie osiąga zbieżności.

numpy.linalg.inv(m: ndarray) ndarray

Oblicza odwrotność macierzy kwadratowej.

Parametry:

m – dwuwymiarowa macierz kwadratowa.

Zwraca:

odwrotność m jako zmiennoprzecinkowy numpy.ndarray.

Wyrzuca:

ValueError – jeśli m nie jest kwadratowa lub jest osobliwa.

Odwracanie jest wykonywane metodą eliminacji Gaussa-Jordana.

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

Oblicza normę 2 wektora lub macierzy.

Parametry:
  • x – obiekt numpy.ndarray, tuple, list lub range.

  • axis – opcjonalna oś, wzdłuż której obliczana jest norma. Jeśli None (wartość domyślna), norma jest obliczana dla spłaszczonego wejścia i zwracana jest pojedyncza liczba float. W przeciwnym razie norma jest redukowana wzdłuż tej osi i zwracany jest obiekt numpy.ndarray.

Zwraca:

albo liczba Pythona float (gdy axis jest None lub gdy x jest obiektem iterowalnym innym niż ndarray), albo numpy.ndarray z usuniętą tą osią.

Norma 2 jest obliczana jako sqrt(sum(x*x)) przy użyciu numerycznie stabilnej średniej kroczącej, więc operacja nie wymaga dodatkowej pamięci proporcjonalnej do rozmiaru wejścia.

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

Rozkłada macierz na iloczyn macierzy ortonormalnej i macierzy górnotrójkątnej.

Parametry:
  • m – dwuwymiarowa macierz o kształcie (M, N).

  • mode – albo 'reduced' (domyślnie), albo 'complete'. W trybie 'complete' Q ma kształt (M, M), a R ma kształt (M, N). W trybie 'reduced' Q i R są obcinane odpowiednio do wiodących min(M, N) kolumn i wierszy.

Zwraca:

2-krotka (Q, R) obiektów numpy.ndarray taka, że m == Q @ R, gdzie Q jest ortonormalna, a R górnotrójkątna.

Wyrzuca:

Rozkład jest zaimplementowany za pomocą kolejnych rotacji Givensa.