Я пытаюсь найти способ вычесть столбец матрицы scipy.sparse
из вектора numpy
, но я не могу найти способ сделать это, не меняя форму вектора. Это то, что у меня есть до сих пор:вычесть столбец матрицы scipy.sparse из вектора
>>> import scipy.sparse
>>> import numpy
>>> A = scipy.sparse.eye(10)
>>> A = A.tolil()
>>> x = numpy.ones(10)
>>> x
array([ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])
>>> x.shape
(10,)
>>> x -= A[:,5].T
>>> x
matrix([[ 1., 1., 1., 1., 1., 0., 1., 1., 1., 1.]])
>>> x.shape
(1, 10)
Есть ли лучший способ достичь этого? Думаю, я мог бы использовать numpy.reshape
, но, возможно, есть лучший способ.
Спасибо, что ответили. Он работает отлично. Теперь о вашем предположении использования 'csr_matrix' вместо этого я не использовал этот формат, потому что я не думаю, что вы можете легко построить матрицу, добавив отдельные элементы. Кроме того, как вы это сделали? Можете ли вы предоставить код, чтобы ваш ответ был полным? – aaragon
@aaragon Я приурочил его с помощью IPython ... это очень просто, используя магическую директиву 'timeit' ... Я обновлю ответ ... –
Обычно вы используете разреженный формат, который подходит для процесса построения, а затем конвертируйте его к формату, который подходит для использования (здесь, расчет). Внутренне разреженный делает много этого преобразования. – hpaulj