我试图找到一种方法从numpy
矢量中减去scipy.sparse
矩阵的一列,但我似乎无法找到一种方法来做到这一点,而无需更改形状的矢量。这是我到目前为止有:从矢量减去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 2014-08-27 19:17:21
@aaragon我使用IPython对其进行了计时...使用magic指令'timeit'非常简单...我将更新答案... – 2014-08-27 19:18:39
通常您使用适合构建过程的稀疏格式,然后将其转换到适合使用的格式(这里是计算)。内部稀疏进行了很多转换。 – hpaulj 2014-08-27 21:37:07