Python >> Tutoriel Python >  >> Python Tag >> NumPy

NumPy argpatition()

numpy.argpartition(a, kth, axis=-1, kind='introselect', order=None)

La fonction d'argpatition NumPy effectue une partition indirecte le long de l'axe donné en utilisant l'algorithme spécifié par le kind mot-clé. Il renvoie un tableau d'indices de la même forme que celui qui indexe les données le long de l'axe donné dans un ordre partitionné.

Arguments Tapez Description
c objet array_like ou poly1d Les polynômes d'entrée à multiplier
ke entier ou suite d'entiers Indice d'élément par lequel partitionner. Le k-ème élément sera dans sa position triée finale et tous les éléments plus petits seront déplacés devant lui et tous les éléments plus grands derrière lui. L'ordre de tous les éléments dans les partitions n'est pas défini. S'il est fourni avec une séquence de k-ième, il les partitionnera tous dans leur position triée à la fois.
axe entier ou None (Facultatif.) Axe selon lequel trier. La valeur par défaut est -1 (le dernier axe). Si aucun, le tableau aplati est utilisé.
genre {'introselect'} (Facultatif.) Algorithme de sélection. La valeur par défaut est 'introselect' .
commander chaîne ou liste de chaînes (Facultatif.) Lorsque un est un tableau avec des champs définis, cet argument spécifie les champs à comparer en premier, en second, etc. Un seul champ peut être spécifié comme une chaîne, et tous les champs n'ont pas besoin d'être spécifiés, mais les champs non spécifiés seront toujours utilisés, dans l'ordre dans qu'ils viennent dans le dtype, pour rompre les liens.

Le tableau suivant montre la valeur de retour de la fonction :

Tapez Description
Valeur de retour index_array :ndarray, entier Tableau d'indices qui partitionnent a le long de l'axe spécifié. Si un est unidimensionnel, a[index_array] donne un a partitionné . Plus généralement, np.take_along_axis(a, index_array, axis=a) donne toujours le a partitionné , quelle que soit la dimensionnalité.

Connexe :Voir partition pour des notes sur les différents algorithmes de sélection.

Plongeons-nous dans quelques exemples pour montrer comment la fonction est utilisée en pratique :

Exemples

Tableau unidimensionnel :

import numpy as np

x = np.array([3, 4, 2, 1])

print(x[np.argpartition(x, 3)])
# [2 1 3 4]

print(x[np.argpartition(x, (1, 3))])
# [1 2 3 4]

Tableau multidimensionnel :

import numpy as np

x = np.array([3, 4, 2, 1])

print(x[np.argpartition(x, 3)])
# [2 1 3 4]

print(x[np.argpartition(x, (1, 3))])
# [1 2 3 4]

x = [3, 4, 2, 1]
print(np.array(x)[np.argpartition(x, 3)])
# [2 1 3 4]

Tout maître codeur a une mentalité "pratique" avec un penchant pour l'action. Essayez-le vous-même :jouez avec la fonction dans le shell de code interactif suivant :

Exercice :Modifiez les paramètres de vos polynômes et imprimez-les sans les comparaisons. Comprenez-vous d'où ils viennent ?

Maîtrisez NumPy et devenez un pro de la science des données :

Vidéo associée


Post précédent
Prochain article