Функции NumPy для линейной алгебры опираются на BLAS и LAPACK для обеспечения эффективной реализации стандартных алгоритмов линейной алгебры на низком уровне. Эти библиотеки могут предоставляться самим NumPy с использованием C-версий подмножества их эталонных реализаций, но, когда это возможно, отдаётся предпочтение высокооптимизированным библиотекам, использующим возможности специализированных процессоров. Примеры таких библиотек — OpenBLAS, MKL (TM) и ATLAS. Поскольку эти библиотеки многопоточны и зависят от процессора, могут потребоваться переменные среды и внешние пакеты, такие как threadpoolctl, для управления количеством потоков или указания архитектуры процессора.
Объект общего исключения Python, наследуемый от исключений, генерируемый функциями linalg.
Линейная алгебра для нескольких матриц одновременно
Новое в версии 1.8.0.
Несколько функций линейной алгебры, перечисленных выше, могут вычислять результаты для нескольких матриц одновременно, если они объединены в один массив.
Это указывается в документации через спецификации параметров ввода, такие как a : (..., M, M) array_like. Это означает, что, например, если на вход подаётся массив a.shape == (N, M, M), он интерпретируется как «стек» из N матриц, каждая из которых имеет размер M на M. Аналогичное условие применяется и к значениям возвращаемых данных, например, определитель имеет det : (...) и в этом случае вернёт массив формы det(a).shape == (N,). Это обобщается на операции линейной алгебры над массивами высших размерностей: последние 1 или 2 размерности многомерного массива интерпретируются как векторы или матрицы, в зависимости от операции.