Scipy 基礎 稀疏矩陣

2021-07-10 21:53:57 字數 1395 閱讀 8922

稀疏矩陣,也即僅儲存非零元素,既提公升了矩陣操作的效率,也節省了記憶體。

很多語言、平台都支援稀疏矩陣這一資料儲存結構,儘管語言、平台各異,但是多數採用相同的基本技術,即儲存矩陣所有的非零元素到乙個線性陣列中,並提供輔助陣列來描述原陣列中非零元素的位置

以下是幾種常見的稀疏矩陣儲存格式:

不同的儲存形式在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中,維度稱為軸,座標軸的數量稱為秩...