python - 在 Scipy 中将 csr 矩阵列的每个元素相乘

标签 python matrix scipy sparse-matrix matrix-multiplication

如何将 csr 矩阵的特定列与固定值(例如 5)相乘 我的方法似乎行不通。首先,我创建一个与填充默认值的矩阵列大小相同的 update_vector 。然后我利用 Scipy csr 矩阵的乘法:

_column = _matrix.getcol(_index)
update_vector = numpy.tile(5, (_column.shape[0], 1))
_matrix[:, _index].multiply(update_vector)

代码运行没有异常,但矩阵保持不变。我是否必须先创建一个副本或者是否有其他可能性来解决该问题?

谢谢

最佳答案

就地执行此操作的低级方法类似于:

_matrix.data[_matrix.indices == _index] *= 5

如果您不能简单地执行以下操作,我会感到惊讶:

_matrix[:, _index] *= 5

尽管在不查看源代码的情况下很难知道这是否真的发生或触发某种形式的复制。

关于python - 在 Scipy 中将 csr 矩阵列的每个元素相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31943339/

相关文章:

r - r 中的两个矩阵相减

python - 在 SciPy.IO.wavfile 中,我遇到了数据 ndim 的问题

python - 尝试找到所有满足 f(x,y) = 0 且 g(x,y) = 0 的有序对 (x,y);即,我试图找到多变量函数的根

python - 如何拟合用 scipy.stats.rv_continuous 定义的分布?

c - 数学矩阵程序

python - 如何使用每行中的特定列从矩阵创建向量,而无需在 Python 中循环?

python - 编译网页表单并使用 Mechanize 检索文件

python - 仍然找到安装了 pyenv 的系统 python - 安装模块

python - TypeError : range() integer end argument expected, 在 Python 中得到 str

python - 是否存在不在 python 中生成回溯的运行时错误(=异常)?