gpt4 book ai didi

python - 尝试同时对两个数组进行排名

转载 作者:太空宇宙 更新时间:2023-11-03 20:42:15 24 4
gpt4 key购买 nike

我正在尝试对最坏情况进行排序,但我正在尝试比较两种不同类型的最坏情况。所以我有两个独立的数组,我试图将它们相互比较。

我使用了下面链接中的排序方法,它在使用一个数组排序时有效,但在使用两个数组排序时无效。

Rank items in an array using Python/NumPy, without sorting array twice

CI_SUM_1 = numpy.array([2,1,7,23])
CI_SUM_2 = numpy.array([4,0,22,3])
order = CI_SUM_1.argsort() + CI_SUM_2.argsort()
rank = order.argsort()
print(rank)

在上面的示例中,它将排名相加(这是有道理的),所以我得到了[0,2,1,3]。这不是我要找的。我正在尝试获得 8 个排名,以便可以看到各个排名。

预期结果应该类似于[2,1,5,7,4,0,6,3],这是两个数组并排放置时的排名。基本上我想要的是绝对排名而不是每个数组的排名。所以我只想要一个 1 除非两个值相同。我不需要两个 0-3 之间的数组,我想要一个 0-7 之间的数组。

最佳答案

您需要concatenate使用 argsort 之前的两个数组 CI_SUM_1CI_SUM_2,例如:

print (np.concatenate([CI_SUM_1,CI_SUM_2]).argsort().argsort())
array([2, 1, 5, 7, 4, 0, 6, 3], dtype=int64)

关于python - 尝试同时对两个数组进行排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56795484/

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