稀疏矩陣儲存格式

2021-08-25 05:30:41 字數 1930 閱讀 2071

當運算資料數量很大且稀疏的時候,使用稀疏的資料儲存格式可以節省大量的儲存空間且加快計算速度。本文介紹三種比較常見的稀疏矩陣表示方式:coo(coordinate format座標表示),csr(compressed sparse row行壓縮),csc(compressed sparse column列壓縮)。

>>> import scipy

>>> import numpy as np

>>> row_idx = np.array([0,0,1,2,2,3,3,3])

>>> col_idx = np.array([0,3,1,2,3,0,1,3])

>>> values = np.array([4,2,1,5,7,6,3,8])

>>> coo_mat = scipy.sparse.coo_matrix((values, (row_idx , col_idx)),shape = (4,4)).toarray()

>>> coo_mat

array([[4, 0, 0, 2],

[0, 1, 0, 0],

[0, 0, 5, 7],

[6, 3, 0, 8]])

row_idx 和col_idx 指定values 中每個資料對應的行下標和列下標。

把非零資料排成一列,並從0開始建立索引,row_ptr指定在哪個索引位置進行換行。例如,稀疏矩陣的第二行是1,那麼就在索引2處進行切割。

把非零資料排成一列,並從0開始建立索引,col_ptr指定在哪個索引位置進行換行。例如,稀疏矩陣的第二列是1、3,那麼就在索引2處進行切割。注意到csc的資料是按列順序排列,和csr有所不同

稀疏矩陣的儲存

class unit def init self,val none,i none,j none 乙個三元組 self.val val self.i i self.j j class xishumatrix def init self self.matrix def destroy self self...

稀疏矩陣儲存方式

在資料預處理中,我們需要採集前的資料是非常龐大的。不妨將資料集d視作乙個矩陣,每一行對應乙個樣本,每一列對應某個特徵。而在現實生活中,例如文件分類任務,以每乙個字詞作為乙個特徵,特徵屬性多大成千上萬,即數千數萬列,而相當一部分特徵對於所考慮的問題具有 稀疏性 也就是矩陣中許多列與當前學習任務無關。這...

稀疏矩陣的壓縮儲存

include include using namespace std templateclass sparsematrix sparsematrix 訪問稀疏矩陣中row行col中的元素 t access int row,int col it return invalid for size t i...