【发布时间】:2023-03-16 12:33:01
【问题描述】:
我在 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 已内置支持)?
-
我是新手,我知道的不多,我只是想找到一个解决方案来将我的矩阵存储在硬盘中我不想运行程序来生成矩阵一次又一次,如果我可以存储矩阵,我下次可以参考矩阵的值..请建议我..谢谢:)
-
请参阅以下内容以格式化您的代码,使其易于阅读:stackoverflow.com/editing-help,但基本上只需在每行代码前放置 4 个空格,然后缩进,否则请确保留空行在代码和任何普通文本之间。
标签: python numpy sparse-matrix