2016-10-25 65 views
0

我使用有問題scipy.sparse.csr_matrix:如何將兩個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中?

任何答案讚賞!

回答

2

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 
+0

這很有效!我應該明白這一點!非常感謝 ! – Liaoxiaochen

+1

'sparse.vstack'的實際工作是由'sparse.bmat'完成的 – hpaulj

相關問題