稀疏矩阵加法

时间:2012-07-06 02:39:55

标签: python scipy

我使用scipy中实现的稀疏矩阵格式作为csr_matrix。我有一个mat变量,它是csr_matrix格式,它的所有元素都是非负的。但是,当我使用mat + mat操作时,非零元素数减少,这对我来说很奇怪。想要的是元素加法,但为什么非元素数将减少,因为每个元素都是非负数。

最好的问候

2 个答案:

答案 0 :(得分:1)

SciPy中nnz的{​​{1}}成员计算显式零,因此根据您创建矩阵的方式,这可以解释您正在观察的内容。您可以通过在矩阵中明确设置零来查看此行为。

csr_matrix

现在,当您执行创建新矩阵的操作(例如矩阵添加)时,不会保留显式零。

>>> from scipy.sparse import csr_matrix
>>> A = csr_matrix((5, 5))
>>> A.nnz
0
>>> A[0, 0] = 0
>>> A.nnz
1
>>> A[1,1] = 0
>>> A.nnz
2

答案 1 :(得分:0)

尽管它可能有点过度杀戮而且没有相关性,但是可能值得研究这两个库

petsc4py

petsc

将解决您能想到的任何稀疏矩阵问题