【问题标题】:Accessing Single Entries in Sparse Matrix in Python在 Python 中访问稀疏矩阵中的单个条目
【发布时间】:2013-10-30 21:12:17
【问题描述】:

我想使用稀疏矩阵来表示 BOW 特征。我已经尝试过来自 scipy 的 coo_matrix,但它似乎不支持我想要做的事情:

我想初始化一个全为零的矩阵,然后在适当的时候将给定的条目更改为一个。但是,当我尝试索引矩阵时,我认为我应该如何——例如 myMatrix[0][0] = 1(甚至是 myMatrix[0][0][0] =1)——它会更改所有值连续到 1。我只想输入一个条目 1。

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

【问题讨论】:

  • 试试myMatrix[0, 0] = 1,应该可以解决你的问题。
  • 是的,这行得通,谢谢。但是初始化矩阵时必须要有 .todense() 。

标签: python scipy sparse-matrix


【解决方案1】:

使用正确的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' 不能这样设置。一旦填满,就很容易转换成另一种格式。

【讨论】:

  • 我认为dok对于随机访问会更有效
猜你喜欢
  • 2011-03-30
  • 2021-12-30
  • 2021-08-03
  • 1970-01-01
  • 2015-04-26
  • 1970-01-01
  • 1970-01-01
  • 2017-12-05
  • 1970-01-01
相关资源
最近更新 更多