gpt4 book ai didi

python - 将密集向量添加到 scipy 中的稀疏矩阵(通过广播)

转载 作者:太空宇宙 更新时间:2023-11-04 03:45:26 25 4
gpt4 key购买 nike

我想知道是否有一种方法可以简单地将密集向量添加到表示为 scipy.sparse 中的 csr_matrix 的稀疏矩阵的所有行并返回稀疏矩阵,即尝试仅对稀疏矩阵的非零元素求和。

如果我这样做:

import numpy as np
import scipy.sparse as sp
W = sp.csr_matrix(np.array([[0,0,1],[0,1,0]]))
v = np.array([2,3,4])

然后

sum = W + v

sum 显然是一个密集矩阵,但也对零数求和。而当我尝试这样做时:

b = (W != 0)
s = b.multiply(v)
sum = W + s

我得到了正确的结果,但是是一个密集矩阵。 b 是稀疏矩阵,但 s 不是。

最佳答案

正如我在评论中所说,问题出现在 multiply 中,它应该为稀疏+密集输入生成一个稀疏矩阵,但没有。转换为稀疏格式以避免该问题:

>>> s = (W != 0).multiply(sp.csr_matrix(v))
>>> W + s
<2x3 sparse matrix of type '<type 'numpy.int64'>'
with 2 stored elements in Compressed Sparse Row format>

关于python - 将密集向量添加到 scipy 中的稀疏矩阵(通过广播),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24083404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com