繁体   English   中英

对csr格式的scipy稀疏矩阵中行的操作

[英]Operations on rows in scipy sparse matrix of csr format

我想将csr矩阵的单行与标量相乘。 在numpy我会做

matrix[indices,:] = x * matrix[indices,:]

对于csr,这在scipy中引发了异常。

有没有办法用csr矩阵类似地做到这一点?

不,没有办法直接这样做,因为虽然你可以计算row * x ,但你不能分配到CSR矩阵中的一行。 您可以转换为DOK格式并返回,或直接处理CSR矩阵的内部。 CSR矩阵X的第i行是切片

X.data[X.indptr[i] : X.indptr[i + 1]]

你可以就地更新,即

X.data[X.indptr[i] : X.indptr[i + 1]] *= factor

(这显然适用于乘法和其他保持稀疏性的操作,但不适用于添加。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM