Maison > développement back-end > Tutoriel Python > Moyens efficaces pour rechercher une ligne spécifique dans un tableau NumPy : questions et solutions

Moyens efficaces pour rechercher une ligne spécifique dans un tableau NumPy : questions et solutions

Susan Sarandon
Libérer: 2024-10-21 18:22:03
original
964 Les gens l'ont consulté

Efficient Ways to Find a Specific Row in a NumPy Array: Questions and Solutions

Recherche efficace des instances d'une ligne spécifique dans un tableau NumPy

Lorsque vous travaillez avec des tableaux NumPy, il peut être nécessaire de déterminer si le array contient une ligne spécifique, mais la méthode standard contains pour ndarray soulève des questions. Cet article présente des solutions efficaces et pythoniques à ce problème.

Une approche consiste à convertir le tableau NumPy en une liste Python à l'aide de .tolist() et à effectuer des vérifications d'adhésion sur la liste.

a = np.array([[1,2],[10,20],[100,200]])
[1,2] in a.tolist() # Returns True
[1,20] in a.tolist() # Returns False
Copier après la connexion

Une autre méthode consiste à utiliser une vue sur le tableau et à appliquer la fonction .all(1) pour comparer chaque ligne avec la ligne cible par élément.

any((a[:]==[1,2]).all(1)) # Returns True
any((a[:]==[1,20]).all(1)) # Returns False
Copier après la connexion

De plus, on peut générer sur la liste NumPy pour une amélioration potentielle des performances. Cependant, cette approche peut s'avérer inefficace si un résultat n'est pas trouvé rapidement.

any(([1,2] == x).all() for x in a) # Stops on first occurrence
Copier après la connexion

Enfin, les fonctions logiques de NumPy fournissent un moyen concis d'effectuer des comparaisons.

any(np.equal(a,[1,2]).all(1)) # Returns True
Copier après la connexion

Les résultats de référence indiquent que les routines numpy maintiennent une vitesse de recherche constante quels que soient les scénarios de réussite ou d'échec. Les approches vue, logique égale et Python dans les opérateurs sont comparables en termes d'efficacité, tandis que le générateur sur NumPy n'est pas recommandé pour les recherches sur un tableau complet.

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal