<p>假设数组<strong>a</strong>有如下数据。您可以找到前n个最大值的索引,如下所示:</p>
<pre><code>import numpy as np
a=np.array([ 10, 10, 11, 11, 10, 10, 12, 12, 10, 10, 10, 13, 14,
14, 15, 100, 15, 12, 13, 11, 10, 12, 14, 14, 100, 100,
100, 12, 13, 10, 10, 11, 13, 100, 100, 13, 14, 13, 12,
10, 10, 11, 10, 100, 100, 100, 12, 13, 12, 13, 10, 10,
10, 15, 100, 14, 14, 11, 12, 12, 10, 10, 10, 15, 15,
14, 10, 10, 10, 11, 10, 10, 10, 12, 11, 11, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10])
aindexes=list(np.arange(0,a.shape[0])) # indexes of elements in a [0 1 2 ... 99]
sorted_a,sorteda_indexes=(list(t) for t in zip(*sorted(zip(a, aindexes),reverse=True))) #sort a in decending order and keep record of original indexes
n=10
topn_indx=sorteda_indexes[0:n] # select top n indexes
print("Top n largest values' indexes:",topn_indx)
</code></pre>
<p>它将打印前10个索引,如下所示:</p>
<pre><code>Top n largest values' indexes: [54, 45, 44, 43, 34, 33, 26, 25, 24, 15]
</code></pre>
<p>希望这有帮助</p>