gpt4 book ai didi

python - 撤消或反向 argsort(),python

转载 作者:IT老高 更新时间:2023-10-28 21:06:13 25 4
gpt4 key购买 nike

给定一个数组 'a' 我想按列对数组进行排序 sort(a, axis=0) 对数组做一些事情,然后撤消排序。我的意思不是重新排序,而是基本上颠倒每个元素的移动方式。我假设 argsort() 是我需要的,但我不清楚如何使用 argsort() 的结果对数组进行排序或更重要的是应用反向/反向argsort()

这里有一点细节

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

aargsort = a.argsort(axis=0)  # May use this later
aSort = a.sort(axis=0)

现在平均每一行

aSortRM = asort.mean(axis=1)

现在用行平均值替换行中的每个列。还有比这更好的方法吗

aWithMeans = ones_like(a)
for ind in range(r) # r = number of rows
aWithMeans[ind]* aSortRM[ind]

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

最佳答案

对于您实际尝试解决的问题,可能有比这更好的解决方案(执行 argsort 通常会排除实际排序的需要),但是您可以这样做:

>>> import numpy as np
>>> a = np.random.randint(0,10,10)
>>> aa = np.argsort(a)
>>> aaa = np.argsort(aa)
>>> a # original
array([6, 4, 4, 6, 2, 5, 4, 0, 7, 4])
>>> a[aa] # sorted
array([0, 2, 4, 4, 4, 4, 5, 6, 6, 7])
>>> a[aa][aaa] # undone
array([6, 4, 4, 6, 2, 5, 4, 0, 7, 4])

关于python - 撤消或反向 argsort(),python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2483696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com