私は疎行列を持っています。このマトリックスを行ごとに並べ替えて、別の [スパース] マトリックスを作成する必要があります。コードはそれをよりよく説明するかもしれません:
# 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
出力1
(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
出力2
(0, 1) 0.885898140175
(0, 5) 0.874881629788
(0, 2) 0.504791645463
(0, 4) 0.352559852239
したがって、どの列が大きいかなどを取得できます。
print new_d.indices
出力3
array([1, 5, 2, 4])
もちろん、すべての行は上記のように個別にソートする必要があります。
この問題の解決策は 1 つありますが、エレガントではありません。