COO 與 CSR 稀疏矩陣存取格式;


稀疏矩陣是指矩陣中元素大部分是0的矩陣,事實上,實際問題中大規模矩陣基本上是稀疏矩陣,很多稀疏度在90%甚至99%以上;因此我們需要有高效的稀疏矩陣存儲格式。

本文參考了 https://www.cnblogs.com/xbinworld/p/4273506.html 此文章,對coo 和 csr 兩種格式,進行摘錄,進行備忘;

  • COO Coordinate (以坐標的形式進行表示) 

 這是最簡單的一種格式,每一個元素需要用一個三元組來表示,分別是(行號,列號,數值),對應上圖右邊的一列。這種方式簡單,但是記錄單信息多(行列),每個三元組自己可以定位,因此空間不是最優。

  • Compressed Sparse Row (CSR) (以行壓縮的形式進行表示)

CSR是比較標准的一種,也需要三類數據來表達:數值,列號,以及行偏移。CSR不是三元組,而是整體的編碼方式。數值和列號與COO一致,表示一個元素以及其列號,行偏移表示某一行的第一個元素在values里面的起始偏移位置。如上圖中,第一行元素1是0偏移,第二行元素2是2偏移,第三行元素5是4偏移,第4行元素6是7偏移。在行偏移的最后補上矩陣總的元素個數,本例中是9。

  • Compressed Sparse Column (CSC) (以列壓縮的形式進行表示)

CSC是和CSR相對應的一種方式,即按列壓縮的意思。

以上圖中矩陣為例:

Values:        [1 5 7 2 6 8 3 9 4]

Row Indices:[0 2 0 1 3 1 2 2 3]

Column Offsets:[0 2 5 7 9]

資源來源自網絡,保持更新;更多內容請關注 cnblogs.com/xuyaowen; 

其他參考鏈接:

https://blog.csdn.net/gaoborl/article/details/82869858 

https://www.cnblogs.com/xbinworld/p/4273506.html 

https://en.wikipedia.org/wiki/Sparse_matrix (上面對稀疏矩陣的格式,有較為詳細的說明)在Storing a sparse matrix 部分;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM