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

时间:2016-10-25 14:57:14

标签: python scipy sparse-matrix

我在使用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中将它们合并在一起?

任何答案都表示赞赏!

1 个答案:

答案 0 :(得分:5)

scipy.sparse拥有自己的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