gpt4 book ai didi

python - 从另一个 csr_matrix 的一行创建 csr_matrix 的平铺操作

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:02 24 4
gpt4 key购买 nike

我有一个 csr_matrix 'a' 类型的稀疏矩阵。我想执行一个操作来创建一个新的 csr_matrix 'b',其中 'b' 的每一行与 'a' 的第 i 行相同。

我认为对于普通的 numpy 数组,可以使用“tile”操作。但我无法为 csr_matrix 找到相同的内容。

首先制作一个 numpy 矩阵并转换为 csr_matrix 不是一个选项,因为矩阵的大小为 10000 x 10000。

最佳答案

我实际上可以得到答案,它不需要创建完整的 numpy 矩阵,并且对于我的目的来说相当快。因此,如果它对将来的人有用,请将其添加为答案:

rows, cols = a.shape
b = scipy.sparse.csr_matrix((np.tile(a[2].data, rows), np.tile(a[2].indices, rows),
np.arange(0, rows*a[2].nnz + 1, a[2].nnz)), shape=a.shape)

这需要“a”的第二行并将其平铺以创建“b”。

以下是时序测试,对于 10000x10000 矩阵来说似乎相当快:

100 loops, best of 3: 2.24 ms per loop

关于python - 从另一个 csr_matrix 的一行创建 csr_matrix 的平铺操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36613458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com