日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

c语言稀疏矩阵做除法,稀疏矩阵的除法

發布時間:2025/3/20 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言稀疏矩阵做除法,稀疏矩阵的除法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

小編典典

我M閑逛:

In [241]: M

Out[241]:

<6x3 sparse matrix of type ''

with 6 stored elements in Compressed Sparse Row format>

In [242]: M.A

Out[242]:

array([[1, 0, 0],

[0, 1, 0],

[0, 0, 1],

[0, 1, 0],

[0, 0, 1],

[1, 0, 0]], dtype=uint8)

In [243]: M.sum(1) # dense matrix

Out[243]:

matrix([[1],

[1],

[1],

[1],

[1],

[1]], dtype=uint32)

In [244]: M/M.sum(1) # dense matrix - full size of M

Out[244]:

matrix([[ 1., 0., 0.],

[ 0., 1., 0.],

[ 0., 0., 1.],

[ 0., 1., 0.],

[ 0., 0., 1.],

[ 1., 0., 0.]])

這將解釋內存錯誤-如果內存錯誤M太大,則會M.A產生內存錯誤。

In [262]: S = sparse.csr_matrix(M.sum(1))

In [263]: S.shape

Out[263]: (6, 1)

In [264]: M.shape

Out[264]: (6, 3)

In [265]: M/S

....

ValueError: inconsistent shapes

我不完全確定這里發生了什么。

元素明智的乘法工作

In [266]: M.multiply(S)

Out[266]:

<6x3 sparse matrix of type ''

with 6 stored elements in Compressed Sparse Row format>

所以如果我構造S為S = sparse.csr_matrix(1/M.sum(1))

如果某些行的總和為零,則存在除以零的問題。

如果我修改M為0行

In [283]: M.A

Out[283]:

array([[1, 0, 0],

[0, 1, 0],

[0, 0, 0],

[0, 1, 0],

[0, 0, 1],

[1, 0, 0]], dtype=uint8)

In [284]: S = sparse.csr_matrix(1/M.sum(1))

/usr/local/bin/ipython3:1: RuntimeWarning: divide by zero encountered in true_divide

#!/usr/bin/python3

In [285]: S.A

Out[285]:

array([[ 1.],

[ 1.],

[ inf],

[ 1.],

[ 1.],

[ 1.]])

In [286]: M.multiply(S)

Out[286]:

<6x3 sparse matrix of type ''

with 5 stored elements in Compressed Sparse Row format>

In [287]: _.A

Out[287]:

array([[ 1., 0., 0.],

[ 0., 1., 0.],

[ 0., 0., 0.],

[ 0., 1., 0.],

[ 0., 0., 1.],

[ 1., 0., 0.]])

這不是最好M的證明,但是它建議一種有用的方法。行總和將是密集的,因此您可以使用通常的密集數組方法清除其逆。

2020-12-20

總結

以上是生活随笔為你收集整理的c语言稀疏矩阵做除法,稀疏矩阵的除法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。