2013-08-07 114 views
3

我想找到一種方法,以獲得其元素的基礎上,column..For例如總和操縱scipy.sparse.csr_matrix,如果我有這樣的:總和的CSR矩陣的元素

(2, 883) 0.0194935608679 
    (10, 883) 0.193169152693 
    (11, 883) 0.1099280996 
    (18, 883) 0.231353403277 
    (11, 884) 0.151292618076 
    (12, 885) 0.0897609047606 
    (15, 885) 0.105370721749 
    (10, 886) 0.116845834609 
    (18, 886) 0.069971527852 
    (0, 947) 0.111838970767 
    (1, 947) 0.0694444065422 
    (2, 947) 0.0440324424809 
    (4, 947) 0.0233598916271 
    (5, 947) 0.301621257244 
    (6, 947) 0.0546866477512 
    (7, 947) 0.162040885384 
    (9, 947) 0.0786245669428 
    (10, 947) 0.130900295682 
    (11, 947) 0.0496615549666 
    (12, 947) 0.100557533892 
    (13, 947) 0.114494053085 
    (14, 947) 0.0535641315858 
    (15, 947) 0.0393483107586 
    (16, 947) 0.0207896459813 
    (17, 947) 0.0538302241537 
    : : 

列的總和883將是0.5539442164

回答

3

你可以這樣做:

mymatrix[:,883].sum() 

值得注意的是說,如果你打算做逐列操作csc_matrix類型要快得多。例如:

r = np.random.random((1000,1000)) 

a = csr_matrix(r) 
b = csc_matrix(r) 

In [20]: timeit a[:,88].sum() 
1000 loops, best of 3: 1.88 ms per loop 

In [21]: timeit b[:,88].sum() 
10000 loops, best of 3: 129 us per loop 

對於行操作,你應該堅持csr_matrix類型。