亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從稀疏矩陣的非零值中減去向量

從稀疏矩陣的非零值中減去向量

料青山看我應如是 2022-09-27 09:54:23
我想從稀疏矩陣的非零值中減去一個向量,例如     [,1] [,2] [,3] [,4][1,]    0    0    4    0[2,]    0    5    0    3[3,]    1    2    0    0這是我試圖減去的向量:[1 2 3]所以我最終需要的是:     [,1] [,2] [,3] [,4][1,]    0    0    3    0[2,]    0    3    0    1[3,]   -2   -1    0    0我通過使用來做到這一點,但是當我使用整個數據集時,它會消耗我的內存。sparse_matrix.A附言:矩陣的尺寸太大,我不想使用循環!
查看完整描述

1 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

讓我們從設置問題開始,并使用csr_matrix來構建稀疏矩陣: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,并使用坐標對1d稠密數組進行索引。然后通過在稀疏矩陣上索引來減去相應的坐標: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]])


查看完整回答
反對 回復 2022-09-27
  • 1 回答
  • 0 關注
  • 86 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號