1 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
讓我們從設(shè)置問(wèn)題開(kāi)始,并使用csr_matrix來(lái)構(gòu)建稀疏矩陣:scipy.sparse
from scipy.sparse import csr_matrix
a = 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,并使用坐標(biāo)對(duì)1d稠密數(shù)組進(jìn)行索引。然后通過(guò)在稀疏矩陣上索引來(lái)減去相應(yīng)的坐標(biāo):rownonzero
nz = 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]])
添加回答
舉報(bào)