Python 稀疏矩阵访问元素
Python Sparse matrix access elements
我在 python 中有一个稀疏矩阵 A。我正在查看我一个朋友的代码,他在他的代码中使用 A[:,i:i+1].toarray().flatten()
。就我而言,这个项目对他很有效。但是,当我尝试使用它时,我得到:
from scipy import sparse
...
diagonals = [[2] * 3, [-1] * (3-1), [-1] * (3-1)]
offsets = [0, 1, -1]
B = sparse.diags(diagonals, offsets)
A = sparse.kronsum(B,B)
...
A[:,i:i+1].toarray().flatten()
异常:
in __getitem__
raise NotImplementedError
NotImplementedError
我的问题是,我需要实现什么或如何访问稀疏矩阵的元素。感谢您的帮助。
很可能您有一个 bsr 格式矩阵,而您拥有的代码是使用旧版本的 scipy 和 returns csr 或 csc 矩阵实现的。我不知道追踪这个的好方法。
所以如果我们 运行 你在 scipy 1.7.2 上编码:
type(A)
scipy.sparse.bsr.bsr_matrix
我们可以通过以下方式访问元素:
A = sparse.kronsum(B,B,format = "csr")
A[:,i:i+1].toarray().flatten()
array([-1., 4., -1., 0., -1., 0., 0., 0., 0.])
或者
A = sparse.kronsum(B,B)
A.tocsr()[:,i:i+1].toarray().flatten()
我在 python 中有一个稀疏矩阵 A。我正在查看我一个朋友的代码,他在他的代码中使用 A[:,i:i+1].toarray().flatten()
。就我而言,这个项目对他很有效。但是,当我尝试使用它时,我得到:
from scipy import sparse
...
diagonals = [[2] * 3, [-1] * (3-1), [-1] * (3-1)]
offsets = [0, 1, -1]
B = sparse.diags(diagonals, offsets)
A = sparse.kronsum(B,B)
...
A[:,i:i+1].toarray().flatten()
异常:
in __getitem__
raise NotImplementedError
NotImplementedError
我的问题是,我需要实现什么或如何访问稀疏矩阵的元素。感谢您的帮助。
很可能您有一个 bsr 格式矩阵,而您拥有的代码是使用旧版本的 scipy 和 returns csr 或 csc 矩阵实现的。我不知道追踪这个的好方法。
所以如果我们 运行 你在 scipy 1.7.2 上编码:
type(A)
scipy.sparse.bsr.bsr_matrix
我们可以通过以下方式访问元素:
A = sparse.kronsum(B,B,format = "csr")
A[:,i:i+1].toarray().flatten()
array([-1., 4., -1., 0., -1., 0., 0., 0., 0.])
或者
A = sparse.kronsum(B,B)
A.tocsr()[:,i:i+1].toarray().flatten()