gpt4 book ai didi

python - np.argsort() 排名紧密

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

np.argsort() 如何处理关系?

test = [1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0]
np.argsort(test)

为什么索引 20 在结果中排​​在第一位?

我检查了其他资源,但找不到解释。在有联系的地方索引是随机分配的吗?谢谢!

array([20,  4,  5,  8,  9, 10, 11, 23, 17, 14, 15,  0, 22, 21, 19, 18, 12,
13, 7, 6, 3, 2, 1, 16, 24], dtype=int64)

最佳答案

numpy.argsort()返回对数组元素进行排序的数组索引。如果存在重复条目,返回的索引取决于用于对数组进行排序的排序算法的类型。根据此选择,您可能会看到不同的结果,如下所示:

# input
In [90]: a
Out[90]:
array([1., 1., 1., 1., 0., 0., 1., 1., 0., 0., 0., 0., 1., 1., 0., 0., 1.,
0., 1., 1., 0., 1., 1., 0., 1.])

# more intuitive
In [85]: np.argsort(a, kind='mergesort')
Out[85]:
array([ 4, 5, 8, 9, 10, 11, 14, 15, 17, 20, 23, 0, 1, 2, 3, 6, 7,
12, 13, 16, 18, 19, 21, 22, 24])

# default choice
In [86]: np.argsort(a, kind='quicksort')
Out[86]:
array([20, 4, 5, 8, 9, 10, 11, 23, 17, 14, 15, 0, 22, 21, 19, 18, 12,
13, 7, 6, 3, 2, 1, 16, 24])

In [88]: np.argsort(a, kind='heapsort')
Out[88]:
array([17, 11, 20, 8, 15, 14, 23, 10, 4, 9, 5, 13, 6, 12, 24, 2, 21,
19, 18, 16, 7, 22, 3, 1, 0])

# more intuitive
In [89]: np.argsort(a, kind='stable')
Out[89]:
array([ 4, 5, 8, 9, 10, 11, 14, 15, 17, 20, 23, 0, 1, 2, 3, 6, 7,
12, 13, 16, 18, 19, 21, 22, 24])

关于python - np.argsort() 排名紧密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55554321/

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