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 |