📜  python argsort a list - Python (1)

📅  最后修改于: 2023-12-03 14:45:55.999000             🧑  作者: Mango

Python中的Argsort用法

ArgsortPython中常用的一种排序方法,可以返回数组或列表中元素在排序后的索引值。本文将介绍Argsort的基本用法和示例应用。

Argsort基本用法

Python中,使用NumPy库来进行Argsort操作。其基本用法如下:

import numpy as np

arr = np.array([3, 1, 4, 2])
indexes = arr.argsort()
print(indexes)

上述代码通过numpy中的argsort()函数对列表arr进行排序,并返回排序后每个元素的索引值,最终输出[1 3 0 2]

说明

可以看到,返回的索引值列表对应的是原列表中,每个元素排序后的位置。例如,在上述代码中,数值1排序后在第三个位置,所以对应的索引值1排在第二个输出。

我们也可以使用argsort()函数对列表中嵌套的列表或数组进行排序:

import numpy as np

arr = np.array([[3,2,1], [1,0,2]])
indexes = np.argsort(arr, axis=-1)
print(indexes)

上述代码输出[[2 1 0] [1 0 2]],其中axis=-1表示按照对于最后一维的索引值排序。

示例应用

除基本用法外,argsort()还可以用于许多实际应用场景,例如:

  • 索引排序以查找名次。例如在学生成绩列表中,通过argsort()可以获得学生名次列表。
  • 按照权重值对列表进行排序。
  • 对于分类结果的排序。

下面是一个对学生成绩进行排序,并输出名次的示例代码:

import numpy as np

arr = np.array([60, 75, 80, 90, 70])
indexes = arr.argsort()[::-1] 
print(f"成绩排序后的名次:{indexes+1}")

上述代码中,将argsort()返回的索引值列表进行倒序输出,然后加上1,即可得到学生的名次列表。

总结

ArgsortPython中常用的一种排序方法,可以返回数组或列表中元素在排序后的索引值。本文介绍了argsort()的基本用法和示例应用,希望可以帮助到您。