Maison >développement back-end >Tutoriel Python >Comment classer efficacement les éléments d'un tableau dans Python/NumPy sans double tri ?
Classement plus rapide des éléments de tableau en Python/NumPy sans double tri
Dans l'analyse des données et l'apprentissage automatique, il est souvent nécessaire de classer les éléments dans un tableau en fonction de leurs valeurs. Le double tri du tableau pour le classement peut prendre du temps.
Approche initiale
Une méthode courante est illustrée ci-dessous :
<code class="python">import numpy as np # Sample array array = np.array([4, 2, 7, 1]) # Temporary array for sorting temp = array.argsort() # Rank computation ranks = np.arange(len(array))[temp.argsort()]</code>
Cette approche implique deux opérations de tri, augmentant sa complexité.
Solution optimisée
Pour éviter le double tri, nous pouvons exploiter deux fois la fonction argsort() de NumPy :
<code class="python">array = np.array([4, 2, 7, 1]) # First argsort to obtain element order order = array.argsort() # Second argsort to obtain ranking ranks = order.argsort()</code>
Explication
Tout d'abord, nous utilisons argsort() pour obtenir l'ordre des éléments du tableau. Ensuite, nous appliquons à nouveau argsort() sur la commande résultante, ce qui nous donne le classement.
Conclusion
Cette technique optimisée améliore considérablement la vitesse de classement des éléments du tableau en éviter les tris inutiles. Pour les tableaux de grande dimension, utilisez l'argument axis dans argsort pour spécifier l'axe de tri.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!