Линейная алгебра#
Функции линейной алгебры NumPy полагаются на BLAS и LAPACK для предоставления эффективных низкоуровневых реализаций стандартных алгоритмов линейной алгебры. Эти библиотеки могут быть предоставлены самим NumPy с использованием C-версий подмножества их эталонных реализаций, но, когда возможно, предпочтительны высокооптимизированные библиотеки, использующие специализированные функции процессора. Примеры таких библиотек: OpenBLAS, MKL (TM) и ATLAS. Поскольку эти библиотеки многопоточные и зависят от процессора, переменные окружения и внешние пакеты, такие как threadpoolctl может потребоваться для управления количеством потоков или указания архитектуры процессора.
Библиотека SciPy также содержит linalg подмодуль, и есть
пересечение в функциональности, предоставляемой подмодулями SciPy и NumPy. SciPy
содержит функции, которых нет в numpy.linalg, такие как функции, связанные с
LU-разложением и разложением Шура, несколько способов вычисления
псевдообратной матрицы и матричные трансцендентные функции, такие как матричный логарифм. Некоторые
функции, существующие в обоих, имеют расширенную функциональность в scipy.linalg.
Например, scipy.linalg.eig может принимать второй аргумент матрицы для решения обобщенных задач на собственные значения. Однако некоторые функции в NumPy имеют более гибкие опции вещания. Например, numpy.linalg.solve может обрабатывать
«уложенные» массивы, в то время как scipy.linalg.solve принимает только один квадратный массив в качестве первого аргумента.
Примечание
Термин матрица как оно используется на этой странице, указывает на 2d numpy.array
объект, и не a numpy.matrix объект. Последний больше не рекомендуется, даже для линейной алгебры. См.
документация по объекту матрицы для получения дополнительной информации.
The @ operator#
Введено в NumPy 1.10.0, @ оператор предпочтительнее других методов при вычислении матричного произведения между 2-мерными массивами.
numpy.matmul функция реализует @ оператор.
Матричные и векторные произведения#
|
Скалярное произведение двух массивов. |
|
Вычислите скалярное произведение двух или более массивов в одном вызове функции, автоматически выбирая самый быстрый порядок вычисления. |
|
Вернуть скалярное произведение двух векторов. |
|
Векторное скалярное произведение двух массивов. |
|
Вычисляет скалярное произведение векторов. |
|
Скалярное произведение двух массивов. |
|
Вычисление внешнего произведения двух векторов. |
|
Вычисление внешнего произведения двух векторов. |
|
Матричное произведение двух массивов. |
|
Вычисляет матричное произведение. |
|
Матрично-векторное скалярное произведение двух массивов. |
|
Векторно-матричное скалярное произведение двух массивов. |
|
Вычисляет тензорное скалярное произведение вдоль указанных осей. |
|
Вычисляет тензорное скалярное произведение вдоль указанных осей. |
|
Вычисляет соглашение суммирования Эйнштейна для операндов. |
|
Вычисляет порядок свертки с наименьшей стоимостью для выражения einsum, учитывая создание промежуточных массивов. |
|
Возведение квадратной матрицы в (целую) степень n. |
|
Произведение Кронекера двух массивов. |
|
Возвращает векторное произведение 3-элементных векторов. |
Разложения#
|
Разложение Холецкого. |
|
Вычислите QR-разложение матрицы. |
|
Сингулярное разложение. |
|
Возвращает сингулярные значения матрицы (или набора матриц) |
Собственные значения матрицы#
|
Вычислить собственные значения и правые собственные векторы квадратного массива. |
|
Возвращает собственные значения и собственные векторы комплексной эрмитовой (сопряжённо-симметричной) или вещественной симметричной матрицы. |
Вычислить собственные значения общей матрицы. |
|
|
Вычислить собственные значения комплексной эрмитовой или вещественной симметричной матрицы. |
Нормы и другие числа#
|
Норма матрицы или вектора. |
|
Вычисляет матричную норму матрицы (или стека матриц) |
|
Вычисляет векторную норму вектора (или пакета векторов) |
|
Вычислить число обусловленности матрицы. |
|
Вычислить определитель массива. |
|
Возвращает ранг матрицы массива с использованием метода SVD |
Вычислите знак и (натуральный) логарифм определителя массива. |
|
|
Возвращает сумму по диагоналям массива. |
|
Возвращает сумму по указанным диагоналям матрицы (или стека матриц) |
Решение уравнений и обращение матриц#
|
Решить линейное матричное уравнение или систему линейных скалярных уравнений. |
|
Решить тензорное уравнение |
|
Вернуть решение методом наименьших квадратов для линейного матричного уравнения. |
|
Вычислить обратную матрицу. |
|
Вычислить (Мура-Пенроуза) псевдообратную матрицу. |
|
Вычислить 'обратный' N-мерного массива. |
Другие операции с матрицами#
|
Возвращает указанные диагонали. |
|
Возвращает указанные диагонали матрицы (или стека матриц) |
|
Транспонирует матрицу (или стек матриц) |
Исключения#
Объект, производный от общего исключения Python, вызываемый функциями linalg. |
Линейная алгебра над несколькими матрицами одновременно#
Некоторые из перечисленных выше подпрограмм линейной алгебры могут вычислять результаты для нескольких матриц одновременно, если они объединены в один массив.
Это указано в документации через спецификации входных параметров,
такие как a : (..., M, M) array_like. Это означает, что если, например, дан входной массив a.shape == (N, M, M), он
интерпретируется как «стопка» из N матриц, каждая размером M на M. Аналогичная
спецификация применяется к возвращаемым значениям, например, определитель
имеет det : (...) и в этом случае вернет массив формы
det(a).shape == (N,). Это обобщается на операции линейной алгебры с многомерными массивами: последние 1 или 2 измерения многомерного массива интерпретируются как векторы или матрицы, в зависимости от операции.