2016-06-02 3 views

ответ

4

Нет, но scipy.linalg.inv дает примерно такую ​​функциональность с overwrite_a вариант: http://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.inv.html#scipy.linalg.inv

Но почему вы хотите, чтобы инвертировать его? Это почти всегда неправильно. http://www.johndcook.com/blog/2010/01/19/dont-invert-that-matrix/

Вместо этого используйте numpy.linalg.solve и предоставите стеку все ваши независимые векторы в одну матрицу, чтобы вы могли решить их все за один раз. Более дешевая и улучшенная численная стабильность.

http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.linalg.solve.html#numpy.linalg.solve

+0

Параметр 'overwrite_a' вариант, кажется, не доступны в [функции NumPy] (http://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.linalg .inv.html)? И да, я действительно хочу инвертировать матрицу, поскольку мне нужно решение для каждого отдельного вектора (я хочу кэшировать результат и обеспечить быстрый доступ к одиночным векторам обратного позже). – Michael

+0

@Michael Вправо: функция numpy не предоставляет эту опцию. Из любопытства, что вы будете делать с векторами, полученными от инверсии? – Alan

+0

Я работаю с моделью ввода-вывода. Колонка в обратном описывает количества продуктов, которые полностью необходимы для производства одной единицы продукта, которая представлена ​​соответствующим столбцом. Эти суммы используются для масштабирования других матриц и индикаторов для анализа цепочки поставок. Когда есть запрос на вычисление набора продуктов, я просто перескакиваю в запрограммированный обратный, получаю соответствующие столбцы и масштабирую их для результатов. Обратный хранится на диске, и столбцы загружаются с помощью сопоставления памяти, которое является супер-быстрым ... – Michael

Смежные вопросы