Сортировка каждой строки большого разреженного и сохранение лучших значений K и индекса столбца

У меня большая скудная матрица (~40k на 100k). Я хотел бы отсортировать каждую строку в порядке убывания, и взять / нарезать верхние значения K (~20-50) для каждой строки. Я также хотел бы знать исходный индекс столбца, так как каждый столбец в матрице представляет слово / функцию (в моем случае я запускаю scikit для получения значений tfidf).

40k строк по значениям K, не будут такими большими, и тогда я могу делать такие операции, как .toarray(), но я не уверен, что было бы наиболее эффективным способом сделать argsort(axis=1) для каждой строки, получение значений вместе с индексами и сохранение этого нового массива. У меня есть идея использовать пары ключ: значение для каждого элемента.

С этим новым массивом я хотел бы выполнить такие операции, как печать значений верхнего элемента матрицы, с которой он (из какого документа соответствует документ), и исходного индекса. Или просто печатать, строка за строкой, все верхние значения с соответствующим индексом каждого значения.

Спасибо за помощь заранее

PS Это в некоторой степени связано с вопросом, который я задал здесь, о суммировании каждого столбца большой матрицы, затем сортировке сумм и получении верхних значений K вместе с индексами столбцов.

0 ответов

Другие вопросы по тегам