试图同时排列两个数组

2024-04-26 07:03:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图获得最坏情况的等级,但我试图比较两种不同类型的最坏情况。所以我有两个独立的数组,我试图将它们相互比较

我使用了下面链接中的排序方法,它在使用一个数组而不是两个数组进行排序时有效

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中的一个


Tags: 方法numpyci类型排序链接情况order
1条回答
网友
1楼 · 发布于 2024-04-26 07:03:40

在使用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)

相关问题 更多 >