我有一個輸出在python中使用稀疏矩陣,我需要將這個稀疏矩陣存儲在我的硬盤中,我該怎麼做呢?如果我應該創建一個數據庫,那麼我應該怎麼做? 這是我的代碼:Python:如何使用python存儲稀疏矩陣?
import nltk
import cPickle
import numpy
from scipy.sparse import lil_matrix
from nltk.corpus import wordnet as wn
from nltk.corpus import brown
f = open('spmatrix.pkl','wb')
def markov(L):
count=0
c=len(text1)
for i in range(0,c-2):
h=L.index(text1[i])
k=L.index(text1[i+1])
mat[h,k]=mat[h,k]+1//matrix
cPickle.dump(mat,f,-1)
text = [w for g in brown.categories() for w in brown.words(categories=g)]
text1=text[1:500]
arr=set(text1)
arr=list(arr)
mat=lil_matrix((len(arr),len(arr)))
markov(arr)
f.close()
我需要存儲這個「墊」的文件,並應訪問使用座標矩陣的值..稀疏矩陣的
結果就像這樣的:`稀疏矩陣的結果是這樣的:
(173, 168) 2.0 (173, 169) 1.0 (173, 172) 1.0 (173, 237) 4.0 (174, 231) 1.0 (175, 141) 1.0 (176, 195) 1.0
但是當我把它保存到一個文件並閱讀我越來越像這樣一樣:
(0, 68) 1.0 (0, 77) 1.0 (0, 95) 1.0 (0, 100) 1.0 (0, 103) 1.0 (0, 110) 1.0 (0, 112) 2.0 (0, 132) 1.0 (0, 133) 2.0 (0, 139) 1.0 (0, 146) 2.0 (0, 156) 1.0 (0, 157) 1.0 (0, 185) 1.0
你心裏有一個特定的數據庫?這些矩陣的大小是多少?你有沒有考慮過sqlite(Python有內置的支持)? – NullUserException 2011-03-02 06:26:07
我是一個新手,我不太瞭解,嗯,我只是想找到一個解決方案,將我的矩陣存儲在硬盤上,我不想運行程序來一次又一次地生成矩陣,如果我可以存儲矩陣我可以在下一次參考值的矩陣..請建議我..謝謝:) – 2011-03-02 09:06:56
請參閱以下格式化您的代碼,以便它是可讀的:http://stackoverflow.com/editing-help,但基本上只需在每行代碼前放4個空格,然後縮進,否則確保在代碼和任何普通文本之間留下空行。 – JoshAdel 2011-03-02 19:52:37