【发布时间】:2014-01-15 18:30:14
【问题描述】:
我有两个(scipy)CSR 稀疏矩阵:
A (12414693, 235470)
B (235470, 48063)
表演:
A.dot(B)
导致分段错误。
我做错了什么?
编辑
我已向 scipy 开发者社区提交了一个错误: https://github.com/scipy/scipy/issues/3212
【问题讨论】:
-
但这些是稀疏矩阵,结果也是如此。事实上,结果应该小于 A(就维度而言)。
-
正如@larsmans 在现已消失的评论中所建议的那样,稀疏矩阵的乘积可能会导致大量填充并给出密集填充的矩阵。这可能不是这里的问题。段。 fault 表示 scipy 代码中某处的错误。这可能是由于处理不当的内存分配失败或其他原因造成的。
-
矩阵 A 是“一个热”向量的行矩阵,因此结果不应该太密集。这值得向 scipy 开发者社区报告吗?
-
是的,当然;单击此处的绿色“新问题”按钮:github.com/scipy/scipy/issues。请务必提及您正在使用的 scipy 版本 (
import scipy; scipy.__version__)。 -
极端情况:在 A 中的“one hot”编码中,假设 all 1 都在 k 列中。并假设在 B 中,第 k 行中的所有值都是非零值,并且这些是唯一的非零值。那么 A 和 B 都非常稀疏,但乘积完全填充了非零值。
标签: python numpy scipy sparse-matrix