The Python numpy digitize function returns the indices of the bins to which the array elements belong. The syntax of this array digitize method is

numpy.digitize(a, bins, right = False)

If a value(s) is beyond the bins boundary, the Python numpy array digitize method returns 0 or len(bins).

- a – Array of Values
- bins – Array of bins
- right – It decides whether the bins are in increasing or decreasing.

right | Bins Order | Output |
---|---|---|

True | Increasing | bins[i – 1] < a <= bins[i] |

False | Increasing | bins[i – 1] <= a < bins[i] |

True | Decreasing | bins[i – 1] >= a > bins[i] |

False | Decreasing | bins[i – 1] > a >= bins[i] |

## Python numpy digitize array example

We declared an array of nine random numbers in this program to test the digitize function.

np.digitize(a, bins = [15]) – It means if the element in the a array is less than 15, it returns 0, and if it is greater than or equals to 15, it returns 1.

np.digitize(a, bins = [9, 20])

- If the element is less than 9, it returns zero.
- If a[n] is between 9 and 20, i.e., 9 ≤ a[n] < 20, it returns 1.
- If a[n] is greater than or equals 20, it returns 2.

np.digitize(a, bins = [9, 20], right = True)

- If the element is less than or equals 9, it returns zero.
- If a[n] is greater than 9 and less than or equals 20, i.e., 9 < a[n] ≤ 20, it returns 1.
- If a[n] is greater than 20, it returns 2.

import numpy as np a = np.array([10, 20, 7, 30, 11, 1, 19, 5, 40]) b = np.digitize(a, bins = [15]) print(b) c = np.digitize(a, bins = [9, 20]) print(c) d = np.digitize(a, bins = [9, 20], right = True) print(d)

```
[0 1 0 1 0 0 1 0 1]
[1 2 0 2 1 0 1 0 2]
[1 1 0 2 1 0 1 0 2]
```

### Python numpy digitize array example 2

If multiple bin values exist, the start and end conditions will be the same as the above. However, the middle one will increment the buckets. For instance, b = np.digitize(a, bins)

- If a[n] is less than 3, it returns 0.
- If a[n] is greater than or equals 3 and less than 6, it returns 1.
- If a[n] is greater than or equals 6 and less than 8, it returns 2.
- If a[n] is greater than or equals 8, it returns 3.

import numpy as np a = np.array([1, 12, 5, 2, 7, 9, 4, 8, 10, 2]) bins = np.array([3, 6, 8]) b = np.digitize(a, bins) print(b) c = np.digitize(a, bins = [2, 4, 6, 8]) print(c)

```
[0 3 1 0 2 3 1 3 3 0]
[0 4 2 1 3 4 2 4 4 1]
```

### Count bin Frequency

The numpy modules a bincount() function to count the frequency of each bin, and this example uses the same.

b = 4 zeros, 2 ones, and 4 twos.

c = 1 zero, 2 ones, 2 twos, 1 three, and 4 fours.

import numpy as np a = np.array([1, 12, 5, 2, 7, 9, 4, 8, 10, 2]) b = np.digitize(a, bins = [5, 8]) print(b) print(np.bincount(b)) c = np.digitize(a, bins = [2, 4, 6, 8]) print(c) print(np.bincount(c))

```
[0 2 1 0 1 2 0 2 2 0]
[4 2 4]
[0 4 2 1 3 4 2 4 4 1]
[1 2 2 1 4]
```