import numpy as np
a = np.array([1,4,3,5,2])
b = np.argsort(a)
print(b)
print结果[0 4 2 1 3]
说明a[0]最小,a[3]最大
a[0]<a[4]<a[2]<a[1]<a[3]
这里要借助到python的内置模块heapq,其原理是基于堆的,也就是二叉树
import heapq
a=[1,2,3,4,5]
re1 = map(a.index, heapq.nlargest(3, a)) #求最大的三个索引 nsmallest与nlargest相反,求最小
re2 = heapq.nlargest(3, a) #求最大的三个元素
print(list(re1)) #因为re1由map()生成的不是list,直接print不出来,添加list()就行了
print(re2)
输出结果为
[4, 3, 2]
[5, 4, 3]
# -*- coding: utf-8 -*-
import heapq
nums = [1, 8, 2, 23, 7, -4, 18, 23, 24, 37, 2]
# 最大的3个数的索引
max_num_index_list = map(nums.index, heapq.nlargest(3, nums))
# 最小的3个数的索引
min_num_index_list = map(nums.index, heapq.nsmallest(3, nums))
print(list(max_num_index_list))
print(list(min_num_index_list))
参考: