Python 稀疏矩阵加法

Python 稀疏矩阵加法,python,scipy,Python,Scipy,我使用scipy中实现的稀疏矩阵格式作为csr_矩阵。我有一个mat变量,它是csr_矩阵格式,它的所有元素都是非负的。然而,当我使用mat+mat操作时,非零元素数减少,这对我来说很奇怪。我们想要的是元素的加法,但为什么非元素数会随着每个元素都是非负的而减少呢 向SciPy中csr_矩阵的nnz成员致以最诚挚的问候因为SciPy中的nnz成员计算的是显式零,所以根据您创建矩阵的方式,这可能解释了您所观察到的情况。通过在矩阵中显式设置零,可以看到这种行为 >>> from sc

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


向SciPy中csr_矩阵的
nnz
成员致以最诚挚的问候

因为SciPy中的
nnz
成员计算的是显式零,所以根据您创建矩阵的方式,这可能解释了您所观察到的情况。通过在矩阵中显式设置零,可以看到这种行为

>>> 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
现在,当您执行创建新矩阵的操作(例如矩阵加法)时,显式零不会保留

>>> B = A + A
>>> B.nnz
0

虽然这可能有点过分,而且没有关联,但值得研究这两个库


你的问题缺乏细节,所以在我的回答中我不得不做出假设。我建议编辑您的问题,添加代码来演示您的问题。这可能会让你得到更好的答案。这是如何回答这个问题的?@Talonmes如果他想使用标准软件来解决一系列科学问题,而scipy如果不付出巨大的努力,将永远无法解决这些问题,那么值得一试。我应该将此作为一个评论,而不是一个对此感到抱歉的问题