2
基本上,我只是试图做一个简单的矩阵乘法,具体来说,提取它的每一列,并通过用它的长度来分割它。修改scipy稀疏矩阵到位
#csc sparse matrix
self.__WeightMatrix__ = self.__WeightMatrix__.tocsc()
#iterate through columns
for Col in xrange(self.__WeightMatrix__.shape[1]):
Column = self.__WeightMatrix__[:,Col].data
List = [x**2 for x in Column]
#get the column length
Len = math.sqrt(sum(List))
#here I assumed dot(number,Column) would do a basic scalar product
dot((1/Len),Column)
#now what? how do I update the original column of the matrix, everything that have been returned are copies, which drove me nuts and missed pointers so much
我已经通过scipy稀疏矩阵文档搜索,没有得到有用的信息。我希望函数能够返回一个指向矩阵的指针/引用,以便我可以直接修改它的值。谢谢
你有没有试过'self.__ WeightMatrix __ [:,Col] = ...'? – Blender 2013-03-04 07:09:12
我这样认为,原始值并没有改变,导致我相信[:Col]返回了一个副本,并且据我所知,似乎csc稀疏矩阵不支持直接索引,如果发生错误这样做。 – 2013-03-04 07:10:10