Skip to main content
`Ctrl`+`K`

# numpy.random.RandomState.randint

method

random.RandomState.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).

  Note

  New code should use the `integers` method of a `Generator` instance instead; please see the Quick start.

  Parameters:
    low int or array-like of ints

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

    high int 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

    size int or tuple of ints, optional

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

    dtype dtype, 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:
    out int or ndarray of ints

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

  See also

  `random_integers`

    similar to `randint`, only for the closed interval [low, high], and 1 is the lowest value if high is omitted.

  `random.Generator.integers`

    which should be used for new code.

  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)