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

标签 python numpy scipy

我想将 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

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

关于python - 对 csr 格式的 scipy 稀疏矩阵中的行的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11687953/

相关文章:

python - Windows 到 Raspberry Pi 零串行问题

python - 使用 numpy 进行多元多项式回归

python - 如何 "zoom out"matplotlib 中的绘图,保持所有大小比例相同,但以英寸为单位减小大小?

python - 了解 odeint 结果 - 与解析解的分歧

python - 如何使用渐变颜色为分布图的条形着色?

python - 在Python中生成所有可能的组合

Python Azure GetSharedAccessSignature

python - IPython 笔记本内核在运行 Kmeans 时死机

python - 数组列表 : How can I see if an array in one list is in another list?

python - 在 Python 中访问稀疏矩阵中的单个条目