Optimal Ranking of Array Items with Minimal Sorting in Python/NumPy
To rank numbers within an array without resorting to the computationally expensive double sorting process, a more efficient approach exists.
Utilizing NumPy's argsort function, the order of the numbers can be determined without altering the original array:
<code class="python">order = array.argsort()</code>
Subsequently, argsort can be applied to the order array to obtain the rankings:
<code class="python">ranks = order.argsort()</code>
This approach eliminates the redundant sorting of the original array, resulting in a more optimized ranking algorithm.
It is crucial to note that for multidimensional arrays, specifying the correct axis to argsort is essential. For instance, to rank a 2D array by rows:
<code class="python">ranks = array.argsort(axis=1)</code>
The above is the detailed content of How to Efficiently Rank Array Items in Python/NumPy without Double Sorting?. For more information, please follow other related articles on the PHP Chinese website!