Вопрос по numpy, sparse-matrix, shuffle, python – Случайным образом перемешать разреженную матрицу в python

6

Есть ли простой способ перемешать разреженную матрицу в Python?

Вот как я тасую не разреженную матрицу:

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

Как я могу сделать это с NumPy разреженным?

Ваш Ответ

3   ответа
0

В случае, если кто-то хочет случайным образом получить подвыборку строк из разреженной матрицы, этот пост также может быть полезен:Как я должен идти о подвыборке из scipy.sparse.csr.csr_matrix и списка

12

Хорошо, нашел это. Разреженный формат выглядит немного запутанным в распечатке.

    index = np.arange(np.shape(matrix)[0])
    print index
    np.random.shuffle(index)
    return matrix[index, :]
Работает только для csr_matrix. Я получаю сообщение об ошибке "coo_matrix" у объекта нет атрибута & apos;getitem& APOS ;.
0

Лучшим способом может быть перетасовка индекса матрицы CSR и выборка строк матрицы как таковых:

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

Похожие вопросы