【问题标题】:How to merge two csr_matrix into one?如何将两个 csr_matrix 合并为一个?
【发布时间】:2016-10-25 23:14:16
【问题描述】:

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

感谢任何答案!

【问题讨论】:

    标签: python scipy sparse-matrix


    【解决方案1】:

    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
    

    【讨论】:

    • 行得通!我应该知道的!非常感谢!
    • sparse.vstack的实际工作由sparse.bmat完成
    猜你喜欢
    • 2013-03-11
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2014-11-16
    • 2020-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多