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