scipy имеет дело с матрицами, выраженными как сумма матриц ранга один - PullRequest
0 голосов
/ 09 ноября 2018

Мне нужно написать алгоритм, который работает с некоторыми квадратными матрицами очень низкого ранга (по сравнению с размерностью). Я хотел бы написать такие матрицы, как сумма «произведения» (d, 1) -матрицы с (1, d) -матрицей, сохранив только список векторов.

Также я хотел бы, чтобы умножение матриц влево и вправо было выполнено с применением матрицы к векторам: то есть, вызовите $ M = \ sum_i v_i * w_i ^ T $, тогда я бы хотел, чтобы $ TM = \ sum_i ( T v_i) * w_i ^ T $ и т. П.

Я не видел ничего подобного в scipy, но это было бы очень полезно, поскольку умножение матриц теперь становится неким умножением матрицы на вектор. Обратите внимание, что ранг моих матриц составляет около 20, а их размер около 400 000, так что это сэкономит мои вычисления много времени.

Обратите также внимание, что такие матрицы не редки, они просто низкого ранга и уже разложены в сумму (d, 1) -матрицы с (1, d) -матрицей.

Как вы советуете делать такую ​​вещь? Где я могу найти ссылки для добавления типа матрицы к scipy?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...