我試圖找到一種方法從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