我一直试图通过其行的向量和来划分python scipy稀疏矩阵。这里是我的代码scipy稀疏矩阵分裂
sparse_mat = bsr_matrix((l_data, (l_row, l_col)), dtype=float)
sparse_mat = sparse_mat/(sparse_mat.sum(axis = 1)[:,None])
然而,它抛出一个错误,不管我如何努力也
sparse_mat = sparse_mat/(sparse_mat.sum(axis = 1)[:,None])
File "/usr/lib/python2.7/dist-packages/scipy/sparse/base.py", line 381, in __div__
return self.__truediv__(other)
File "/usr/lib/python2.7/dist-packages/scipy/sparse/compressed.py", line 427, in __truediv__
raise NotImplementedError
NotImplementedError
任何与我要去的地方错误的想法?
该部门调用true_division,这是一个元素明智的分工。这似乎没有被实施多个价值。所以,最有可能的结果是'(sparse_mat.sum(axis = 1)[:, None]'不是一个单一的数字。 – Dschoni
@Dschoni是的,结果是一个向量,我的目标是将每个元素如果M = [[2,4],[1,2]],我想得到Ans = [[2/6,4/6],[1/3,2/3]]。 – uchman21
你试过了吗?sparse_mat = sparse_mat *(1 /(sparse_mat.sum(axis = 1)[:, None]))'似乎稀疏矩阵的划分是问题。您可能还必须将除数转换为密集数组sparse_mat = sparse_mat *(1 /(sparse_mat.sum(axis = 1).toarray()[:,None]))' –