撤消或反转argsort(),python

7 浏览
0 Comments

撤消或反转argsort(),python

给定一个数组'a',我想通过列对数组进行排序sort(a, axis=0),对数组进行一些操作,然后撤销排序。这并不是说重新排序,而是基本上颠倒每个元素的移动方式。我认为argsort()是我需要的,但我不清楚如何根据argsort()的结果对数组进行排序,或者更重要的是应用argsort()的反向/逆向操作。

以下是更详细的说明:

我有一个数组ashape(a) = rXc,我需要对每列进行排序

aargsort = a.argsort(axis=0)  # 以后可能会用到这个
aSort = a.sort(axis=0)

现在对每行求平均值

aSortRM = asort.mean(axis=1)

现在用行平均值替换每个行中的列。

有没有比这更好的方法

aWithMeans = ones_like(a)
for ind in range(r)  # r = 行数
    aWithMeans[ind]* aSortRM[ind]

现在我需要撤销我在第一步中所做的排序。????

0