擅长:python、mysql、java
<p>您可以使用<code>np.argsort</code>这样做</p>
<pre><code>test =np.random.randint(1,5,10)
</code></pre>
<p>输出</p>
<pre><code>array([3, 2, 3, 1, 4, 1, 3, 1, 3, 3])
</code></pre>
<p>得到第二个最大值</p>
<pre><code>test[np.argsort(test)[-2]]
</code></pre>
<p><code>np.argsort</code>按升序排序,因此对于最大值,我们取最后一个值,对于第二个最大值,则取最后一个值。你知道吗</p>
<p>编辑:为了改进这个答案,我编写了一个类似于Divakar(<a href="https://stackoverflow.com/a/49832435/9534390">https://stackoverflow.com/a/49832435/9534390</a>)的函数。你知道吗</p>
<pre><code>def argNmax(a, N, axis=None):
return np.take(np.argsort(a, axis=axis), -N)
</code></pre>