简体   繁体   中英

Accessing column in sparse CSR matrix

Having some issues with accessing the last column in the sparse CSR matrix. Ideally, I would like to convert the last column into some sort of array that can be used as my label set. My CSR matrix looks like this:

(0, 1976)   1
  (0, 2916) 1
  (0, 3871) 1
  (0, 4437) 1
  (0, 8202) 1
  (0, 9458) 1
  (0, 10597)    1
  (1, 4801) 1
  (1, 6903) 1
  (1, 7525) 1
  (2, 873)  1
  (2, 1017) 1
  (2, 1740) 1
  (2, 1925) 1
  (3, 1976) 1
  (3, 5606) 1
  (3, 6898) 1

I want to access the last column, which contains all the '1'. Is there a way in which I can do this?

CSR matrix has indicies and indptr properties, see below example which converts matrix to list using these properties:

def sparse_to_string_list(matrix: csr_matrix):
    res = []
    indptr = matrix.indptr
    indices = matrix.indices
    for row in range(matrix.shape[0]):
        arr = [k for k in indices[indptr[row]: indptr[row + 1]]]
        arr.sort()
        res.append(' '.join([str(k) for k in arr]))
    return res

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM