我有一个稀疏矩阵。我需要逐行排序这个矩阵并创建另一个[稀疏]矩阵。代码可能会更好地解释它:
# 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])
当然,每一行都应该像上面那样独立排序。
对于这个问题,我有一个解决方案,但它并不优雅。