# NumPy where() with multiple conditions in Python

In this tutorial, we learn how to use the numpy where() method in Python.

### NumPy where() in Python:

Topics covered in this tutorial are,

1. Syntax of numpy.where()
2. Using numpy.where() with single condition
3. Using numpy.where() with multiple conditions

#### Syntax of numpy.where() :

numpy.where(condition[, x, y])
Where x and y are two arrays. When the condition is true then the element in x must be considered and when the condition is false then the element in y must be considered.
NOTE: x and y are should of the same size.

### Using numpy.where() with single condition:

```import numpy as np
arr = np.array([1,2,3,4])
np.where(arr>2,["High","High","High","High"],["Low","Low","Low","Low"])```
`array(['Low', 'Low', 'High', 'High'], dtype='<U4')`

Here, we considered arr>2 as the condition. As 1 and 2 are not greater than 2, elements in the right array are considered. As 3 and 4 are greater than 2, elements in the left array are considered. Finally, we got output as [‘Low’, ‘Low’, ‘High’, ‘High’].

### Using numpy.where() with Multi conditions:

```import numpy as np
arr = np.array([1,2,3,4,5,6,7,8])
np.where((arr>4) & (arr<8), ['X','X','X','X','X','X','X','X'],['Y','Y','Y','Y','Y','Y','Y','Y',])```
`array(['Y', 'Y', 'Y', 'Y', 'X', 'X', 'X', 'Y'], dtype='<U1')`

Here, we considered (arr>4) & (arr<8) as the condition. As elements 1,2,3,4,8 don’t follow the condition, elements in the right array are considered. As 5,6 and 7 follow the condition, elements in the left array are considered. Finally, we got output as [‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘X’, ‘X’, ‘X’, ‘Y’].

In this way numpy.where() method is useful to generate new arrays based on multiple conditions. I hope it might be helpful for you. Thank you!