numpy.random.randint — NumPy v2.3.dev0 Manual (original) (raw)

random.randint(low, high=None, size=None, dtype=int)#

Return random integers from low (inclusive) to high (exclusive).

Return random integers from the “discrete uniform” distribution of the specified dtype in the “half-open” interval [low, high). If_high_ is None (the default), then results are from [0, low).

Parameters:

lowint or array-like of ints

Lowest (signed) integers to be drawn from the distribution (unlesshigh=None, in which case this parameter is one above the_highest_ such integer).

highint or array-like of ints, optional

If provided, one above the largest (signed) integer to be drawn from the distribution (see above for behavior if high=None). If array-like, must contain integer values

sizeint or tuple of ints, optional

Output shape. If the given shape is, e.g., (m, n, k), thenm * n * k samples are drawn. Default is None, in which case a single value is returned.

dtypedtype, optional

Desired dtype of the result. Byteorder must be native. The default value is long.

Warning

This function defaults to the C-long dtype, which is 32bit on windows and otherwise 64bit on 64bit platforms (and 32bit on 32bit ones). Since NumPy 2.0, NumPy’s default integer is 32bit on 32bit platforms and 64bit on 64bit platforms. Which corresponds to np.intp. (dtype=int is not the same as in most NumPy functions.)

Returns:

outint or ndarray of ints

size-shaped array of random integers from the appropriate distribution, or a single such random int if size not provided.

Examples

np.random.randint(2, size=10) array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0]) # random np.random.randint(1, size=10) array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

Generate a 2 x 4 array of ints between 0 and 4, inclusive:

np.random.randint(5, size=(2, 4)) array([[4, 0, 2, 1], # random [3, 2, 2, 0]])

Generate a 1 x 3 array with 3 different upper bounds

np.random.randint(1, [3, 5, 10]) array([2, 2, 9]) # random

Generate a 1 by 3 array with 3 different lower bounds

np.random.randint([1, 5, 7], 10) array([9, 8, 7]) # random

Generate a 2 by 4 array using broadcasting with dtype of uint8

np.random.randint([1, 3, 5, 7], [[10], [20]], dtype=np.uint8) array([[ 8, 6, 9, 7], # random [ 1, 16, 9, 12]], dtype=uint8)