2
votes

Tableau numpy Python: vérifiez si tous les éléments du tableau sont 0 ou 2, true

Comment vérifier si tous les éléments d'un tableau sont 0 ou 2 en Python Numpy? Par exemple

if (all elements in c == 0) or   (all elements in c == 2):
    This is true
else : 
    This is False

Cela signifie que si c = numpy.array [0,0,2] c'est true ,

mais si c = numpy.array [0,1,2] c'est false.

Quelqu'un pourrait-il me donner un morceau de code?


1 commentaires

D'accord. ma question devrait être plus claire. le tableau est un tableau numpy.


4 Réponses :


4
votes

Méthode simple: Comptez simplement le nombre de 0 et de 2, vérifiez si le nombre est égal à la longueur du tableau:

def check(array):
   return array.count(0) + array.count(2) == len(array) 


1 commentaires

Cela fonctionne pour les tableaux normaux, si vous vous en tenez à numpy, utilisez la solution fournie par @Chris




3
votes

Vous pouvez utiliser des opérateurs binaires comme des opérateurs logiques:

((x == 0) | (x == 2)). all ()

C'est légèrement plus rapide (~ 20-30%) que la solution "np.isin".


0 commentaires

0
votes

test visuel rapide en cours

np.unique(arr1)

Ceci liste tous les éléments uniques dans arr1. Donc, si vous obtenez quelque chose qui ne contient pas seulement 0 ou 2, vous pouvez le savoir visuellement immédiatement. Juste un conseil.


1 commentaires

le calcul unique () nécessite de trier tout arr1 , donc il sera nettement plus lent que les autres solutions