稀疏矩陣,也即僅儲存非零元素,既提公升了矩陣操作的效率,也節省了記憶體。很多語言、平台都支援稀疏矩陣這一資料儲存結構,儘管語言、平台各異,但是多數採用相同的基本技術,即儲存矩陣所有的非零元素到乙個線性陣列中,並提供輔助陣列來描述原陣列中非零元素的位置。
以下是幾種常見的稀疏矩陣儲存格式:
不同的儲存形式在sparse模組中對應如下:
bsr_matrix(arg1[, shape, dtype, copy, blocksize]) block sparse row matrix
coo_matrix(arg1[, shape, dtype, copy]) a sparse matrix in coordinate format.
csc_matrix(arg1[, shape, dtype, copy]) compressed sparse column matrix
csr_matrix(arg1[, shape, dtype, copy]) compressed sparse row matrix
dia_matrix(arg1[, shape, dtype, copy]) sparse matrix with diagonal storage
dok_matrix(arg1[, shape, dtype, copy]) dictionary of keys based sparse matrix.
lil_matrix(arg1[, shape, dtype, copy]) row-based linked list sparse matrix
構建乙個 coo format 的稀疏矩陣:
>>>
>>>
from scipy import sparse
>>>
from numpy import array
>>> i = array([0,3,1,0])
>>> j = array([0,3,1,2])
>>> v = array([4,5,7,9])
>>> a = sparse.coo_matrix((v,(i,j)),shape=(4,4))
>>> a.todense()
matrix([[4, 0, 9, 0],
[0, 7, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 5]])
todense()方法實現稀疏向密集型的轉換;
[1] python scipy sparse模組學習筆記
[2] sparse matrices (scipy.sparse)
[3] 稀疏矩陣的儲存格式(sparse matrix storage formats)
python中scipy學習 隨機稀疏矩陣及操作
1.生成隨機稀疏矩陣 scipy中生成隨機稀疏矩陣的函式如下 scipy.sparse.rand m,n,density,format,dtype,random state 引數介紹 引數含義 m,n整型 表示矩陣的行和列 density 實數型別 表示矩陣的稀疏度 format str型別 表示矩...
基礎61 稀疏矩陣
61 稀疏矩陣 問題描述 今天明明學到了什麼叫做矩陣,但他發現要將乙個矩陣輸入進電腦是一件很麻煩的事。特別是有些矩陣很大,且大部分元素都是0,我們稱這類矩陣為稀疏矩陣。於是,明明發明了一種簡單的表示方法,只指出矩陣中非零元素來表示該矩陣。例如乙個矩陣 0 0 0 5 2 0 0 0 0 1 0 0 ...
SciPy 基礎功能
預設情況下,所有numpy函式都可以在scipy 命名空間 中使用。當匯入scipy時,不需要顯式地匯入numpy函式。numpy的主要物件是n次多維陣列ndarray,scipy構建在ndarray陣列之上,ndarray是儲存單一資料型別的多維陣列。在numpy中,維度稱為軸,座標軸的數量稱為秩...