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