How to create a matrix of random integers in Python?

In Python, you can create a matrix of random integers using the NumPy library. NumPy is a powerful library for scientific computing that provides support for multidimensional arrays and random number generation.

To create a matrix of random integers, you use the numpy.random.randint() function. This function generates random integers within a specified range and returns a NumPy array of the specified shape.

Syntax

numpy.random.randint(low, high=None, size=None, dtype='l')

Parameters

  • low The lowest (inclusive) integer to be generated in the matrix.

  • high The highest (exclusive) integer to be generated in the matrix. If not specified, the highest integer will be one greater than the low value.

  • size The shape of the matrix to be generated as a tuple. For example, (3, 3) would generate a 3×3 matrix.

  • dtype The data type of the output array. By default, it is set to 'l' for integers.

Creating a 1D Array of Random Integers

First, let's create a simple array of random integers ?

import numpy as np

# Generate an array of 20 random integers between 0 and 9
array = np.random.randint(low=0, high=10, size=20)
print(array)
[7 1 4 7 6 8 9 9 0 5 5 6 1 0 2 4 2 9 1 2]

Creating a 2D Matrix of Random Integers

To create a 2D matrix, specify the size as a tuple ?

import numpy as np

# Generate a 2x3 matrix of random integers between 0 and 9
matrix = np.random.randint(low=0, high=10, size=(2, 3))
print(matrix)
[[9 5 7]
 [0 6 1]]

Creating a Binary Matrix (0s and 1s)

You can create a matrix with only 0s and 1s by setting the range from 0 to 2 ?

import numpy as np

# Generate a 5x5 matrix of random integers (0s and 1s only)
binary_matrix = np.random.randint(low=0, high=2, size=(5, 5))
print(binary_matrix)
[[1 1 1 0 1]
 [0 1 0 0 0]
 [0 1 0 1 0]
 [0 0 1 0 1]
 [0 0 1 0 1]]

Setting Random Seed for Reproducible Results

To generate the same random numbers every time, use np.random.seed() ?

import numpy as np

# Set seed for reproducible results
np.random.seed(42)

# Generate a 3x3 matrix of random integers
matrix = np.random.randint(low=1, high=11, size=(3, 3))
print(matrix)
[[ 7  1  5]
 [ 9  3  4]
 [ 8  2 10]]

Comparison of Common Approaches

Method Output Type Best For
np.random.randint() Integer matrix Random integers in a range
np.random.rand() Float matrix (0-1) Random floats between 0 and 1
np.random.random() Float matrix (0-1) Alternative to rand()

Conclusion

Use np.random.randint() to create matrices of random integers by specifying the range and size. Set a seed with np.random.seed() for reproducible results in testing and debugging.

Updated on: 2026-03-27T01:31:56+05:30

10K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements