繁体   English   中英

稀疏矩阵加法

[英]Sparse Matrix Addition

我正在使用稀疏矩阵格式,在scipy中实现为csr_matrix。 我有一个csr_matrix格式的mat变量,并且其所有元素均为非负数。 但是,当我使用mat + mat操作时,非零元素数减少了,这对我来说很奇怪。 想要的是按元素进行加法运算,但是为什么非元素数会随着每个元素为非负数而减少。

最好的祝福

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

>>> 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

尽管这可能会导致杀伤力过大且不相关,但值得研究这两个库

petsc4py

佩茨

几乎可以解决您能想到的任何稀疏矩阵问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM