【发布时间】:2017-02-24 08:17:18
【问题描述】:
我希望在 python 2.7 中划分两个稀疏矩阵,本质上是k = numerator / denominator,结果是sp.csr_matrix 类型的稀疏矩阵。我正在使用scipy as sp 和numpy as np。
为此,我遵循采用分子的点积和分母的倒数的线性格式。这两个项目的格式都是sp.csr_matrix(([],([],[])),shape=[R,R])。
k本身的计算是
k = sp.csr_matrix(numerator.dot(sp.linalg.inv(denominator)))
这样做会返回警告:
SparseEfficiencyWarning: splu requires CSC matrix format
warn('splu requires CSC matrix format', SparseEfficiencyWarning)
上述警告意味着什么关于将k 的身份确定为两个稀疏矩阵之间的商?
有没有更有效的方法在python中生成稀疏矩阵和稀疏矩阵逆的点积(两个稀疏矩阵的商)?
我之前找到了Inverting large sparse matrices with scipy,但是我想知道这是否已经过时了。
【问题讨论】:
-
为什么 2013 年的答案会过时?有没有发现
sparseinv功能或讨论? -
我认为由于 scipy 库中的更新,它可能已经过时,并且创建了一个我找不到的成员函数。没有找到关于稀疏逆的讨论。
-
一条评论表明
sparse.linalg.inv正在开发中 - 这在我的版本中存在。 -
是的,我目前在点积中使用
sp.linalg.inv,但是我收到了问题中详细说明的警告,我主要想知道警告是否可能是 3 小时过去的原因,并且终端没有返回结果...
标签: python performance numpy scipy sparse-matrix