2013-10-30 100 views
5

我想爲BOW特徵表示使用稀疏矩陣。我已經從scipy嘗試過coo_matrix,但它似乎並不支持我想要做的:在Python中訪問稀疏矩陣中的單個條目

我想初始化一個全零矩陣,然後在適當時將給定條目更改爲一個。但是,當我嘗試索引矩陣時,我認爲我應該 - myMatrix [0] [0] = 1(或者甚至myMatrix [0] [0] [0] = 1),例如 - 它會更改所有值我想只做一個單一的條目1.

我可以用numpy矩陣輕鬆做到這一點,但我想用空間效率的稀疏矩陣。

+0

試試'myMatrix [0,0] = 1',那應該可以解決你的問題。 – Jaime

+0

是的,這工作,謝謝。但是當你初始化矩陣時你必須有.todense()。 – airpierre

回答

4

使用正確的sparse類型有幫助。

from scipy import sparse 
M = sparse.lil_matrix((10,10)) 
M[1,1] = 1 
M[5,5] = 1 
# <10x10 sparse matrix of type '<type 'numpy.float64'>' 
# with 2 stored elements in LInked List format> 

dok也有效。 csr建議使用lil。 'coo'不能這樣設置。一旦填滿,很容易轉換爲另一種格式。

+0

+1在萬聖節編輯 –