一只甜甜圈
让我们从设置问题开始,并使用csr_matrix来构建稀疏矩阵:scipy.sparsefrom scipy.sparse import csr_matrixa = np.array([[0, 0, 4, 0], [0, 5, 0, 3], [1, 2, 0, 0]])a_sp = csr_matrix(a, dtype=np.int8)b = np.array([1,2,3])我们可以找到稀疏矩阵的非零位置,csr_matrix.nonzero,并使用坐标对1d稠密数组进行索引。然后通过在稀疏矩阵上索引来减去相应的坐标:rownonzeronz = a_sp.nonzero()a_sp[nz] -= b[nz[0]]print(a_sp.toarray())array([[ 0, 0, 3, 0], [ 0, 3, 0, 1], [-2, -1, 0, 0]])