在Python中访问稀疏矩阵中的单个条目

在Python中访问稀疏矩阵中的单个条目,python,scipy,sparse-matrix,Python,Scipy,Sparse Matrix,我想使用稀疏矩阵表示弓特征。我曾尝试过scipy的coo_matrix,但它似乎不支持我想做的事情: 我想初始化一个全零矩阵,然后在适当的时候将给定的条目更改为一。但是,当我尝试以我认为应该的方式为矩阵编制索引时——例如,myMatrix[0][0]=1(甚至myMatrix[0][0][0]=1)——它将一行中的所有值都更改为1。我只想写一个条目1 我可以用numpy矩阵轻松做到这一点,但我希望使用稀疏矩阵来提高空间效率 使用右侧的sparse类型有帮助 from scipy import s

我想使用稀疏矩阵表示弓特征。我曾尝试过scipy的coo_matrix,但它似乎不支持我想做的事情:

我想初始化一个全零矩阵,然后在适当的时候将给定的条目更改为一。但是,当我尝试以我认为应该的方式为矩阵编制索引时——例如,myMatrix[0][0]=1(甚至myMatrix[0][0][0]=1)——它将一行中的所有值都更改为1。我只想写一个条目1


我可以用numpy矩阵轻松做到这一点,但我希望使用稀疏矩阵来提高空间效率

使用右侧的
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>
从scipy导入稀疏
M=稀疏的lil_矩阵((10,10))
M[1,1]=1
M[5,5]=1
# 

dok
也有效<代码>csr建议使用
lil
”coo’不能这样设置。填充后,很容易转换为另一种格式。

尝试
myMatrix[0,0]=1
,这将解决您的问题。是的,这很有效,谢谢。但是初始化矩阵时必须使用.todense()