sparse.coo_matrix()


 coo_matrix.tocsrcopy = False 

將此矩陣轉換為壓縮稀疏行格式,重復的條目將匯總在一起。

 

舉例:

from numpy import array
from scipy.sparse import coo_matrix
row  = array([0, 0, 1, 3, 1, 0, 0])
col  = array([0, 2, 1, 3, 1, 0, 0])
data = array([1, 1, 1, 1, 1, 1, 1])
A = coo_matrix((data, (row, col)), shape=(4, 4)).tocsr()
A.toarray()

 

  數組r中的元素和它對應下標的c列表中的元素組成了非零數字在稀疏矩陣中的坐標,r和c的第一個元素都是0,說明矩陣坐標(0,0)位置有非零數字,這個數字是幾呢?這就要看data數組了。由於data的數值都是1,(0,0)出現兩次,那么(0,0)位置的數值就是1+1=2。這里我們用r,c,data三個數組配合coo_matrix構造了一個稀疏矩陣。稀疏矩陣在計算機中的coo形式存儲就是這個的逆過程。

  在做特征工程的過程中,對於那些取值是多個類別的變量,經常要用到One-Hot編碼,其結果就是得到稀疏矩陣X。現在要在數據集X的基礎上加上一些做過一個列變量變換的數據集features,features不是稀疏矩陣,要合並X和feature就需要進行如下操作:

if sparse.issparse(X):     #判斷X是否稀疏
	features = sparse.lil_matrix(features)    將features數據集用lil_matrix()稀疏化
	X = sparse.hstack((X, features), 'csr')   橫向合並X和稀疏后的features,並存儲為csr格式

  

 

參考文獻:

【1】Scipy_Sparse介紹

 


免責聲明!

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



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