Numpy/Scipy 中與Matlab中的sparse函數等效的操作——Python處理稀疏矩陣


創建稀疏矩陣 - MATLAB sparse - MathWorks 中國

python - numpy/scipy equivalent of MATLAB's sparse function - Stack Overflow
S = sparse(i,j,v,m,n) 將 S 的大小指定為 m×n。
等效的python操作是

import numpy as np
import scipy.sparse as sps

H = sps.csr_matrix((V, (I, J)), shape=(m,n),dtype= np.int32)

其中I向量(數組)記錄非零元素行的位置,J向量(數組)表示非零元素列的位置,V向量表示非零元素值,(也可以指定其中部分元素為0),稀疏是一種存儲優化方法,未必就是只保存非0元素。

m2 = sps.csr_matrix(([3,1], ([2,1], [2,3])), dtype=np.float)
m2.todense()

[3,1]兩個非稀疏化元素,一個是3,一個是1
[2,1]記錄了行位置,[2,3]記錄了列位置,3在(2,2),1在(1,3)

matrix([[0., 0., 0., 0.],
        [0., 0., 0., 1.],
        [0., 0., 3., 0.]])
m2 = sps.csr_matrix(([3,0], ([2,1], [2,3])), dtype=np.float)
m2.todense()
matrix([[0., 0., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 3., 0.]])


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM