Maison >développement back-end >Tutoriel Python >Comment comparer deux tableaux NumPy pour l'égalité par élément et vérifier s'ils sont entièrement égaux ?

Comment comparer deux tableaux NumPy pour l'égalité par élément et vérifier s'ils sont entièrement égaux ?

DDD
DDDoriginal
2024-10-26 15:46:02278parcourir

How do you compare two NumPy arrays for element-wise equality and check if they are entirely equal?

Comparaison de deux tableaux NumPy pour l'égalité par éléments

Lors de la comparaison de deux tableaux NumPy pour l'égalité par éléments, il peut être tentant d'utiliser l'opérateur ==. Cependant, cette approche renvoie un tableau booléen indiquant l’égalité pour chaque paire d’éléments correspondante. Pour vérifier si les tableaux sont entièrement égaux, nous devons déterminer si tous les éléments du tableau booléen sont vrais.

Le moyen le plus simple d'y parvenir est d'utiliser l'expression (A==B).all() . Cette expression renvoie une seule valeur booléenne qui est vraie si tous les éléments du tableau booléen (A==B) sont vrais, indiquant que chaque élément des deux tableaux est égal.

Exemple :

<code class="python">import numpy as np

arr1 = np.array([1, 1, 1])
arr2 = np.array([1, 1, 1])

result = (arr1 == arr2).all()
print(result)  # Output: True</code>

Cas particuliers et alternatives :

Il est important de noter que :

  • Utilisation de (A==B). all() peut renvoyer True dans de rares cas où un tableau est vide et l'autre contient un seul élément.
  • Si les tableaux ont des formes différentes et ne sont pas diffusables, cette approche générera une erreur.

Dans ces cas, ou si vous désirez une approche plus explicite, pensez à utiliser les fonctions spécialisées suivantes :

  • np.array_equal(A, B) : teste si les tableaux ont le même shape et tous les éléments ont des valeurs égales.
  • np.array_equiv(A, B) : teste si les tableaux peuvent être diffusés et ont les mêmes valeurs.
  • np.allclose(A, B, ...) : Teste si les tableaux ont la même forme et si leurs éléments sont suffisamment proches (dans une tolérance spécifiée).

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!

Déclaration:
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