我想将csr矩阵的单行与标量相乘。在numpy我会做
matrix[indices,:] = x * matrix[indices,:]
对于csr,这会在scipy中引发异常。
有没有办法用csr矩阵类似地做到这一点?
答案 0 :(得分:12)
不,没有办法直接这样做,因为虽然您可以计算row * x
,但您无法分配到CSR矩阵中的行。您可以转换为DOK格式并返回,或直接处理CSR矩阵的内部。 CSR矩阵i
的{{1}}行是切片
X
你可以就地更新,即
X.data[X.indptr[i] : X.indptr[i + 1]]
(这显然适用于乘法和其他保留稀疏性的操作,但不适用于添加。)