Randomly shuffle a sparse matrix in python Randomly shuffle a sparse matrix in python numpy numpy

Randomly shuffle a sparse matrix in python


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, :]


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


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

from random import shuffleindices = np.arange(matrix.shape[0]) #gets the number of rows shuffle(indices)shuffled_matrix = matrix[list(indices)]