天天看點

csr 矩陣 編碼_COO 與 CSR 稀疏矩陣存取格式;

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

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

csr 矩陣 編碼_COO 與 CSR 稀疏矩陣存取格式;

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

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

csr 矩陣 編碼_COO 與 CSR 稀疏矩陣存取格式;

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

csr 矩陣 編碼_COO 與 CSR 稀疏矩陣存取格式;

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;