创建数组:
import numpy as np
n = np.array([3,2,4,6,1])
输出结果:
[3 2 4 6 1]
调用np.argsort()函数,输出结果:
import numpy as np
n = np.array([3,2,4,6,1])
code = n.argsort()
print(n)
print(code)
print(n[code])
[3 2 4 6 1]
[4 1 0 2 3]
[1 2 3 4 6]
可以看到,该函数就是对数组按照数值从小到大排序后,输出每个值对应的索引值,如下表所n示:
n |
3(index:0) |
2(index:1) |
4(index:2) |
6(index:3) |
1(index:4) |
排序 |
1(4) |
2(1) |
3(0) |
4(2) |
6(3) |
argsort() |
4 |
1 |
0 |
2 |
3 |
关于:
np.argsort()[num]
表示对输出值进行切片,取数。
由于,argsort()函数是输出数组n由小到大的排序,取数也就是按照排序的结果进行。
import numpy as np
n = np.array([3,2,4,6,1])
code = n.argsort()
code_num = n.argsort()[-2:]
print(n)
print(code)
print(code_num)
print('-'*10)
print(n[code])
print(n[code_num])
结果:
[3 2 4 6 1]
[4 1 0 2 3]
[2 3]
----------
[1 2 3 4 6]
[4 6]