Comment inverser les éléments d'une matrice booléenne avec numpy de python ?

Published: 16 avril 2019

Updated: 20 septembre 2023

Tags: Python; Numpy;

DMCA.com Protection Status

Dans cet article, nous discuterons de la façon d'inverser un tableau booléen numpy en Python. Nous passerons en revue les bases d'un tableau booléen numpy et comment utiliser l'opérateur bitwise pour l'inverser.

Créez un tableau booléen numpy.

Créons une matrice booléenne en utilisant numpy.

import numpy as np

data = np.array([True,True,False], dtype=bool)

Notez que

print( type(data) )
print( data.dtype )

donne

<class 'numpy.ndarray'>

et

bool

respectivement.

Avec numpy invert()

Pour inverser un tableau booléen numpy, vous pouvez utiliser la fonction numpy invert() pour retourner chaque élément du tableau. Cette fonction effectue une opération NOT bit à bit, ce qui entraînera le retournement de chaque élément du tableau booléen numpy. Par exemple, si un élément est True, il deviendra False, et si un élément est False, il deviendra True.

np.invert(data)

donne

array([False, False,  True])

Avec l'opérateur ~

Pour inverser un tableau booléen numpy, vous pouvez également utiliser l'opérateur de bits (~) pour retourner chaque élément du tableau.

data_inv = ~data

print(data_inv)

donne

array([False, False,  True])

L'opérateur ~ sert de raccourci pratique pour np.invert lorsqu'il est utilisé sur des ndarrays.

Inverser un tableau de 1 et 0.

Pour certains scénarios pratiques, nous utilisons souvent les valeurs 0 et 1 pour représenter des informations booléennes. Dans de tels cas, pour inverser le tableau en utilisant les méthodes mentionnées précédemment, il devient impératif de le convertir initialement en un tableau booléen.

data = np.array([1,1,0])

Notez que

~data

donne alors

array([-2, -2, -1])

Convertir un tableau en un tableau booléen.

data_new = np.array(data, dtype=bool)

donne

array([ True,  True, False])

alors

data_inv = ~data_new

donne

array([False, False,  True])

Conversion du tableau en type entier.

data_inv = np.array(data_inv, dtype=int)

donne

array([0, 0, 1])

Références

Liens Site
numpy.invert numpy.org