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

Multiply each element of a csr matrix column in Scipy

如何将 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

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