# How to generate random integers in NumPy?

NumPy provides `randint()` function to generate random integers between two values. The `randint()` function is present in a `random` module of NumPy.

## How to use numpy.random.randint() in Python?

The syntax of `randint()` function is

`numpy.random.randint(low, high, size)`

It takes three arguments:

• `low`: It is the lower bound. All the numbers generated from `randint()` are greater than or equal to `low`.
• `high`: It is the upper bound. All the numbers generated from `randint()` are less than `high`.
• `size`: It is used to specify the shape of the returned NumPy array. If nothing is specified, then a single value is generated. You can pass an integer or a tuple of integers.

In mathematical terms, numbers generated by `numpy.random.randint()` function belongs to `[low, high)` interval.

Note: The `size` parameter controls how many numbers will be generated by `randint()`.

## How to generate 1D NumPy array using np.random.randint()?

The following code will generate a 1 dimensional NumPy array that contains 5 random integers between 0 and 100.

```import numpy as np
arr = np.random.randint(0, 100, size=5)
print(arr)```

Output

`[80  8 99 86 34]`

The following code will generate a 1 dimensional NumPy array that contains 6 random integers between 10 and 30.

```import numpy as np
arr = np.random.randint(10, 30, size=(6))
print(arr)```

Output

`[11 17 23 22 10 23]`

## How to generate 2D NumPy array using np.random.randint()?

The following code will generate a 3x4 NumPy array that contains 12 random integers between 0 and 10.

```import numpy as np
arr = np.random.randint(0, 10, size=(3, 4))
print(arr)```

Output

```[[0 2 3 6]
[2 7 5 3]
[4 7 7 3]]```