我下面有一个稀疏矩阵。
a = sparse.diags([1,2,3],[-1,0,1],shape=(6,6),format ="csr")
我想取稀疏矩阵中每个元素的倒数。 我在互联网上搜索它,并注意到几乎没有提到倒数。 我知道numpy有一个互惠的功能。 np.reciprocal()但它在我的情况下不起作用。
它不必具有这样的收件功能。如果有人可以提供两个相同大小的稀疏矩阵或元素幂函数(-1的幂)的元素除法函数,那也很好。
非常感谢。
答案 0 :(得分:0)
如果您只想取非零元素的倒数,可以使用
M.nonzero() = 1 / M.nonzero()
这取决于您使用的稀疏形式是否快速!
或者从Efficient way of taking Logarithm function in a sparse matrix借用,您可以使用
new_data = 1/M.data
M = csr_matrix((new_data, (M.row, M.col)), shape = M.shape)
或者(晚期编辑,感谢joeln),上面的内容可以用
完成np.reciprocal(M.data, out=M.data)
然后M
的条目将被反转。