请注意,您可以通过仔细构造另一个矩阵来做到这一点。这是对密集矩阵的工作方式:
>>> S = np.array([[1, 0, 0, 1, 0,], [0, 1, 1, 0, 1]])>>> np.dot(S, A.toarray())array([[5, 0, 0, 0, 0], [0, 5, 5, 0, 0]])>>>
稀疏版本只是稍微复杂一点。有关应将哪些行求和的信息编码为
row:
col = range(5)row = [0, 1, 1, 0, 1]dat = [1, 1, 1, 1, 1]S = csr_matrix((dat, (row, col)), shape=(2, 5))result = S * A# check that the result is another sparse matrixprint type(result)# check that the values are the ones we wantprint result.toarray()
输出:
<class 'scipy.sparse.csr.csr_matrix'>[[5 0 0 0 0] [0 5 5 0 0]]
您可以通过在其中包含更高的值
row并相应扩展其形状来处理输出中的更多行
S。



