首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么spsolve()函数输出一个向量?

为什么spsolve()函数输出一个向量?
EN

Stack Overflow用户
提问于 2014-02-02 13:05:20
回答 1查看 172关注 0票数 0

F是CSR稀疏矩阵。

代码语言:javascript
复制
  (0, 0)    28.9009663001
  (0, 1)    -9.21359549996
  ...
  (7, 6)    -10.2135955
  (7, 7)    30.9009663001

C也是CSR稀疏矩阵。

代码语言:javascript
复制
(0, 0)  1.0782887739
(1, 0)  -1.33369825452
(2, 0)  1.74824228278
(3, 0)  -2.55552434318
(4, 0)  3.08435514293
(5, 0)  -1.94369861339
(6, 0)  1.47753839244
(7, 0)  -2.09583584401

P= spsolve(F,C)输出以下内容:

代码语言:javascript
复制
[ 0.02897775 -0.02418963  0.03217452 -0.0457709   0.06740877 -0.03168885
0.01767905 -0.06140939]

为什么即使F和C都是稀疏矩阵,输出也是向量?Scipy参考指南说:“如果C是一个向量,那么输出就是一个向量。”但现在C是稀疏的。但是输出仍然是向量的形式。

我想我可以直接用sparse.csr_matrix(P)。但是它会降低速度吗?

EN

回答 1

Stack Overflow用户

发布于 2014-02-02 23:22:27

这是因为spsolve将稀疏列矩阵(如C)转换为密集向量:https://github.com/scipy/scipy/blob/v0.13.0/scipy/sparse/linalg/dsolve/linsolve.py#L92

不管怎样,看起来你的输出是密集的,所以把它转换成稀疏表示只会使速度变慢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21507275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档