## How to do logical AND in numpy:

Logical and or *AND* can be done with the items of two arrays easily using numpy. *numpy* provides one method called *logical_and* that can be used for that.

In this post, I will show you how to use *logical_and* with examples.

### Definition of logical_and:

*logical_and* is defined as below:

`python.logical_and(arr1, arr2, out=None, where=True, dtype=None)`

Here,

*arr1*and*arr2*are the given arrays. The must be of same shape. They must be broadcastable to a common shape if they are different in shape. The output array will be of same shape.*out*is the location where the final result is stored. It is an*optional*value. If not given or*None*, one newly allocated array is returned. It can be*ndarray, None, or tuple of ndarray and None**where*is*array_like*value and it is*optional*. It is broadcasted over the array items. Where it is*True*, the array item will be set to the*ufunc result*, else it will take the original value.*dtype*is an*optional value*. It defines the type of the returned array.- It returns a
*ndarray*or a*boolean value*

### Example of logical_and:

Let’s start from a simple example. For the below example:

```
import numpy
print(numpy.logical_and(True, True))
print(numpy.logical_and(True, False))
print(numpy.logical_and(False, True))
print(numpy.logical_and(False, False))
```

It will print the below output:

```
True
False
False
False
```

### Example 2:

Let’s take an example of two arrays:

```
import numpy
arr1 = [True, False, False, True]
arr2 = [False, True, False, True]
print(numpy.logical_and(arr1, arr2))
```

It will print the below output:

`[False False False True]`

### Example 3:

We can also use *AND* with numbers:

```
import numpy
arr1 = [1, 0, 0, 1]
arr2 = [0, 1, 0, 1]
print(numpy.logical_and(arr1, arr2))
```

It considers *0* as *False* and *1* as *True*. It will print the same output as the above example.

`[False False False True]`

### Using where:

The below example shows how to use *where*:

```
import numpy
arr1 = [1, 0, 0, 1]
arr2 = [0, 1, 0, 1]
print(numpy.logical_and(arr1, arr2, where=[True, False, True, False]))
```

It will print:

`[False True False True]`