如何将两个 csr_matrix 合并为一个?

How to merge two csr_matrix into one?

我在使用 scipy.sparse.csr_matrix 时遇到问题:

例如:

a = csr_matrix([[1,2,3],[4,5,6]])
b = csr_matrix([[7,8,9],[10,11,12]])

如何将它们合并到

[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]

我知道一种方法是先将它们转移到 numpy 数组中:

csr_matrix(numpy.vstack((a.toarray(),b.toarray())))

但是当矩阵又大又稀疏时,它就不起作用了,因为内存会运行。

那么有什么方法可以将它们合并到 csr_matrix 中吗?

如有任何答案,我们将不胜感激!

scipy.sparse has it's own stack-methods。您可以直接在稀疏矩阵上使用它们。

import scipy.sparse as sp

a = sp.csr_matrix([[1,2,3],[4,5,6]])
b = sp.csr_matrix([[7,8,9],[10,11,12]])
c = sp.vstack((a,b))  # NOT np.vstack