numpy.linalg — Процедуры линейной алгебры¶
Подмодуль numpy.linalg предоставляет небольшой набор процедур линейной алгебры, работающих с объектами numpy.ndarray. Функции, работающие с матрицами, требуют двумерных массивов; передача массивов иной размерности возбуждает исключение ValueError. Комплексные типы данных этим подмодулем не поддерживаются.
Функции¶
- numpy.linalg.cholesky(A: ndarray) ndarray¶
Вычисляет разложение Холецкого положительно определённой симметричной квадратной матрицы.
- Параметры:
A – положительно определённая симметричная двумерная квадратная матрица.
- Результат:
нижнетреугольный массив
numpy.ndarrayLтакой, чтоA = L @ L.T.- Исключение:
ValueError – если A не квадратная, не симметричная или не положительно определённая.
- numpy.linalg.det(m: ndarray) float¶
Вычисляет определитель квадратной матрицы.
- Параметры:
m – двумерная квадратная матрица.
- Результат:
определитель m как Python-значение
float. Возвращаемое значение всегда является числом с плавающей точкой, даже когда на входе целочисленный массив.- Исключение:
ValueError – если m не квадратная.
Вычисление выполняется методом гауссова исключения с частичным выбором ведущего элемента.
- numpy.linalg.eig(m: ndarray) tuple[ndarray, ndarray]¶
Вычисляет собственные значения и собственные векторы вещественной симметричной квадратной матрицы.
- Параметры:
m – двумерная вещественная симметричная квадратная матрица.
- Результат:
двухэлементный кортеж
(eigenvalues, eigenvectors).eigenvalues— это одномерный массив длиныN;eigenvectors— это массив размеромN-на-N, столбцы которого являются соответствующими собственными векторами.- Исключение:
ValueError – если m не квадратная, не симметричная или если итерация вращений Якоби не сходится.
- numpy.linalg.inv(m: ndarray) ndarray¶
Вычисляет обратную матрицу квадратной матрицы.
- Параметры:
m – двумерная квадратная матрица.
- Результат:
обратная матрица m как массив
numpy.ndarrayс плавающей точкой.- Исключение:
ValueError – если m не квадратная или вырожденная.
Обращение выполняется методом исключения Гаусса-Жордана.
- numpy.linalg.norm(x: ndarray, axis: int | None = None) float | ndarray¶
Вычисляет 2-норму вектора или матрицы.
- Параметры:
x – объект
numpy.ndarray,tuple,listилиrange.axis – необязательная ось, вдоль которой вычисляется норма. Если
None(значение по умолчанию), норма берётся по сглаженным в один ряд входным данным и возвращается единственноеfloat. В противном случае норма редуцируется вдоль этой оси и возвращается массивnumpy.ndarray.
- Результат:
либо Python-значение
float(когда axis равноNoneили когда x является итерируемым объектом, отличным от ndarray), либо массивnumpy.ndarrayс удалённой этой осью.
2-норма вычисляется как
sqrt(sum(x*x))с использованием численно устойчивого скользящего среднего, поэтому операция не требует дополнительной памяти, пропорциональной размеру входных данных.
- numpy.linalg.qr(m: ndarray, mode: str = 'reduced') tuple[ndarray, ndarray]¶
Раскладывает матрицу в произведение ортонормированной матрицы и верхнетреугольной матрицы.
- Параметры:
m – двумерная матрица формы
(M, N).mode – либо
'reduced'(по умолчанию), либо'complete'. В режиме'complete'Qимеет форму(M, M), аRимеет форму(M, N). В режиме'reduced'QиRусекаются до ведущихmin(M, N)столбцов и строк соответственно.
- Результат:
двухэлементный кортеж
(Q, R)из объектовnumpy.ndarrayтакой, чтоm == Q @ R, гдеQортонормирована, аRверхнетреугольная.- Исключение:
TypeError – если m не является объектом
numpy.ndarray.ValueError – если m не двумерная или mode не является одним из допустимых значений.
Разложение реализовано посредством последовательных вращений Гивенса.