Сортировка в разреженной матрице

У меня разреженная матрица. Мне нужно отсортировать эту матрицу построчно и создать другую [разреженную] матрицу. Код может объяснить это лучше:

# for `rand` function, you need newer version of scipy.
from scipy.sparse import *
m = rand(6,6, density=0.6)
d = m.getrow(0)
print d

Output1

(0, 5) 0.874881629788 
(0, 4) 0.352559852239 
(0, 2) 0.504791645463 
(0, 1) 0.885898140175

У меня есть эта матрица m. Я хочу создать новую матрицу с отсортированной версией m. Новая матрица содержит 0-ю строку, подобную этой.

new_d = new_m.getrow(0)
print new_d

Output2

(0, 1) 0.885898140175
(0, 5) 0.874881629788  
(0, 2) 0.504791645463
(0, 4) 0.352559852239

Таким образом, я могу получить, какой столбец больше и т. д.:

print new_d.indices

Output3

array([1, 5, 2, 4])

Конечно, каждая строка должна быть отсортирована, как указано выше, независимо.

У меня есть одно решение этой проблемы, но оно не элегантное.

8
задан Baskaya 4 April 2012 в 09:30
поделиться