【问题标题】:efficiently set a large number of SciPy sparse matrix entries to zero有效地将大量 SciPy 稀疏矩阵条目设置为零
【发布时间】:2016-06-22 04:59:28
【问题描述】:

我需要从 SciPy 稀疏矩阵中修剪大量条目。 目前我将矩阵转换为 DOK 格式并单独分配 每个条目为 0。

m = m.todok()
for i, j in pruneme:
  m[i,j] = 0

这非常慢。

有没有更快的方法?

【问题讨论】:

  • m通常有什么格式?
  • @RolandW 它以 csr_matrix 开头。

标签: python numpy matrix scipy sparse-matrix


【解决方案1】:

您可以有效地设置 CSR 稀疏数组的元素,只要您不添加新的非零值,只需使用元组对数组进行下标即可:

i, j = zip(*pruneme) # assuming that pruneme is a python list
m[i, j] = 0.
m.eliminate_zeros()

这应该比构造两个数组要快得多。

【讨论】:

    猜你喜欢
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2013-11-16
    • 2017-03-26
    • 1970-01-01
    • 2021-02-01
    相关资源
    最近更新 更多