У меня большая матрица (около 80 000 X 60 000), и я в основном хочу скремблировать все записи (то есть, случайным образом переставить как строки, так и столбцы независимо).
Я полагаю, что это сработает, если я переберу столбцы и использую randperm для случайной перестановки каждого столбца. (Или я мог бы с тем же успехом делать строки.) Поскольку это включает цикл с итерациями по 60 КБ, мне интересно, может ли кто-нибудь предложить более эффективный вариант?
Я также работал с numpy / scipy, так что если вы знаете хороший вариант в python, это тоже было бы здорово.
Спасибо!
Susan
Спасибо за все продуманные ответы! Немного больше информации: строки матрицы представляют документы, а данные в каждой строке представляют собой вектор весов tf-idf для этого документа. Каждый столбец соответствует одному термину в словаре. Я использую pdist для вычисления сходства косинусов между всеми парами статей. И я хочу создать случайный набор документов для сравнения.
Я думаю, что тогда будет работать только перестановка столбцов, потому что каждой статье назначается случайный набор частот терминов. (Перестановка строк означает просто переупорядочение документов.) Как отметил Джонатан, это дает преимущество не в том, чтобы делать новую копию всей матрицы, и похоже, что все остальные варианты будут.