Randomly shuffle a sparse matrix in python

前端 未结 3 1508
孤城傲影
孤城傲影 2021-01-04 20:42

is there an easy way to shuffle a sparse matrix in python?

This is how I shuffle a non-sparse matrix:

    index = np.arange(np.shape(matrix)[0])
             


        
相关标签:
3条回答
  • 2021-01-04 21:05

    A better way can be shuffling the index of CSR Matrix and fetching the rows of matrix as such:

    from random import shuffle
    indices = np.arange(matrix.shape[0]) #gets the number of rows 
    shuffle(indices)
    shuffled_matrix = matrix[list(indices)] 
    
    0 讨论(0)
  • 2021-01-04 21:16

    Ok, found it. The sparse format looks a bit confusing in the print-out.

        index = np.arange(np.shape(matrix)[0])
        print index
        np.random.shuffle(index)
        return matrix[index, :]
    
    0 讨论(0)
  • 2021-01-04 21:21

    In case anyone is looking to randomly get a subsample of rows from a sparse matrix, this related post may also be useful: How should I go about subsampling from a scipy.sparse.csr.csr_matrix and a list

    0 讨论(0)
提交回复
热议问题