4
votes

Inverser le tableau numpy binaire

existe-t-il une sorte de "non logique" pour les tableaux numpy (de nombres bien sûr).

Par exemple, considérons ce tableau: x = [1,0,1,0,0,1]

Je recherche un moyen simple de calculer son "inverse" y = [0,1,0,1,1,0]


0 commentaires

4 Réponses :


14
votes

Pour un tableau de 1s et 0s , vous pouvez simplement soustraire les valeurs de x de 1 : XXX


Ou vous pouvez également prendre le XOR au niveau du bit des valeurs binaires dans x avec 1 :

x^1 
# array([0, 1, 0, 1, 1, 0])


0 commentaires

5
votes

Oui, vous pouvez utiliser np.logical_not:

array([0, 1, 0, 1, 1, 0])

Output:

np.logical_not(x).astype(int)


0 commentaires

5
votes

Ou en utilisant XOR:

y =  [n ^ 1 for n in x]


0 commentaires

2
votes

Voici une façon:

[0 1 0 1 1 0]

Alternativement:

y =  0 + (x == 0)

Sortie:

y =  (x == 0).astype(int)
Remarques:
  1. (x == 0) donne un tableau booléen où False apparaît à la place de 1 et True code> apparaît à la place de 0 .
  2. L'appel de la méthode astype (int) , ou l'ajout du scalaire 0 à la matrice, convertit False en 0 code > et True à 1


0 commentaires