(Python)的 任何人都可以建议使用另一个csr矩阵B(大小为400k * 800k)的列填充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]]
还有一种简单的方法可以按比例4:1
分割矩阵B.答案 0 :(得分:0)
有助于考虑问题,好像A
和B
首先是密集数组。如果我理解你的问题,你需要的东西是:
A = B[:, x]
事实证明,您也可以使用CSR矩阵执行相同的操作,并且它的效率相当高。关键是要避免将值分配给现有的稀疏矩阵(特别是如果它是CSR或CSC格式)。通过一次性完成索引,scipy能够使用更有效的方法。