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.ndarrayLtaki, żeA = 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).eigenvaluesjest jednowymiarową tablicą o długościN;eigenvectorsjest 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,listlubrange.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 liczbafloat. W przeciwnym razie norma jest redukowana wzdłuż tej osi i zwracany jest obiektnumpy.ndarray.
- Zwraca:
albo liczba Pythona
float(gdy axis jestNonelub gdy x jest obiektem iterowalnym innym niż ndarray), albonumpy.ndarrayz 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'Qma kształt(M, M), aRma kształt(M, N). W trybie'reduced'QiRsą obcinane odpowiednio do wiodącychmin(M, N)kolumn i wierszy.
- Zwraca:
2-krotka
(Q, R)obiektównumpy.ndarraytaka, żem == Q @ R, gdzieQjest ortonormalna, aRgórnotrójkątna.- Wyrzuca:
TypeError – jeśli m nie jest obiektem
numpy.ndarray.ValueError – jeśli m nie jest dwuwymiarowa lub mode nie jest jedną z akceptowanych wartości.
Rozkład jest zaimplementowany za pomocą kolejnych rotacji Givensa.