擅长:python、mysql、java
<p>这是<a href="https://docs.scipy.org/doc/numpy/user/quickstart.html" rel="nofollow noreferrer">NumPy</a>的典型作业,对于这些类型的操作来说非常快:</p>
<pre><code>array_np = numpy.asarray(array)
low_values_flags = array_np < lowValY # Where values are low
array_np[low_values_flags] = 0 # All low values set to 0
</code></pre>
<p>现在,如果只需要highCountX最大的元素,甚至可以“忘记”小元素(而不是将它们设置为0并对它们进行排序),只对大元素列表进行排序:</p>
<pre><code>array_np = numpy.asarray(array)
print numpy.sort(array_np[array_np >= lowValY])[-highCountX:]
</code></pre>
<p>当然,如果只需要几个元素,那么对整个数组进行排序可能不是最优的。根据您的需要,您可能需要考虑标准的<a href="http://docs.python.org/library/heapq.html" rel="nofollow noreferrer">heapq</a>模块。</p>