In this article, we will discuss how to invert a numpy boolean array in Python. We will go over the basics of a numpy boolean array and how to use the bitwise operator to invert it.

## Create a numpy boolean array

Let's create a boolean matrix using numpy

`import numpy as np`

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

Note that

`print( type(data) )`

`print( data.dtype )`

returns

`<class 'numpy.ndarray'>`

and

`bool`

respectively.

## Using numpy invert()

To invert a numpy boolean array, you can use the numpy invert() function to flip each element in the array. This function performs a bitwise NOT operation, which will result in each element of the numpy boolean array being flipped. For example, if an element is `True`

, it will become `False`

, and if an element is `False`

it will become `True`

.

`np.invert(data)`

gives

`array([False, False, True])`

## Using the ~ operator

To invert a numpy boolean array, you can also use the bitwise operator (`~`

) to flip each element in the array.

`data_inv = ~data`

`print(data_inv)`

gives

`array([False, False, True])`

The ~ operator serves as a convenient shorthand for np.invert when operating on ndarrays

## Inverting an array of 1 and 0

For certain practical scenarios, we often utilize the values of 0 and 1 to denote boolean information. In such cases, to invert the array using the aforementioned methods, it becomes imperative to initially convert it into a boolean array.

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

Note that

`~data`

then gives

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

### Convert array to a boolean array

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

gives

`array([ True, True, False])`

then

`data_inv = ~data_new`

gives

`array([False, False, True])`

### Converting the array to int

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

gives

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

## References

Links | Site |
---|---|

numpy.invert | numpy.org |