【问题标题】:Populate an empty CSR sparse matrix with columns of another csr matrix and slicing it用另一个 csr 矩阵的列填充一个空的 CSR 稀疏矩阵并将其切片
【发布时间】:2017-08-26 12:46:04
【问题描述】:

(Python) 任何人都可以建议使用来自另一个大小为 400k*800k 的 csr 矩阵 B 的列中的值填充 csr 矩阵 A 的最简单和最快的方法。 我的失败尝试:

#x is a list of size 500 which contains the column numbers needed from B
A=sparse.csr_matrix((400000,500))

for i in range(400000):
    for j in range(500):
        A[i,j]=B[i,x[j]]

还有一种简单的方法可以将矩阵 B 以 4:1 的比例拆分

【问题讨论】:

    标签: python scipy sparse-matrix


    【解决方案1】:

    首先将问题视为AB 都是密集数组会有所帮助。如果我理解你的问题,你会想要这样的:

    A = B[:, x]
    

    事实证明,您也可以对 CSR 矩阵执行相同的操作,而且效率相当高。关键是避免将值分配给现有的稀疏矩阵(特别是如果它是 CSR 或 CSC 格式)。通过一次完成所有索引,scipy 能够使用更有效的方法。

    【讨论】:

      猜你喜欢
      • 2021-08-21
      • 2021-08-03
      • 2023-03-03
      • 2014-10-09
      • 1970-01-01
      • 2019-08-09
      • 2023-04-05
      • 1970-01-01
      • 2016-10-29
      相关资源
      最近更新 更多