Open In App

numpy.random.shuffle() in python

Last Updated : 22 Aug, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

numpy.random.shuffle() function randomly modify the order of elements in a sequence like a list or NumPy array in-place. This means the original array is changed and no new array is returned.

Example:

Python
import numpy as np

arr = np.array([1, 2, 3, 4, 5])
np.random.shuffle(arr)
print(arr)

Output
[5 2 4 1 3]

Explanation: The array is shuffled in place. Each run may produce a different permutation.

Syntax

numpy.random.shuffle(arr)

  • Parameter: arr is a one-dimensional or multi-dimensional array whose contents will be shuffled along the first axis.
  • Return Type: It shuffles the array in-place and returns None.

Key Points:

  • It only shuffles along the first axis of a multi-dimensional array.
  • For one-dimensional arrays, it behaves like Python's built-in random.shuffle() but works with NumPy arrays.
  • Use numpy.random.permutation() instead if you need a new shuffled array without modifying the original.

Examples

Example 1: Shuffling a 2D array

Python
import numpy as np

arr = np.array([[1, 2], [3, 4], [5, 6]])
np.random.shuffle(arr)
print(arr)

Output
[[1 2]
 [5 6]
 [3 4]]

Explanation: Only the rows are shuffled. The columns within each row remain unchanged.

Example 2: No return value

Python
import numpy as np

arr = np.array([10, 20, 30])
res = np.random.shuffle(arr)
print(res)

Output
None

Explanation: shuffle() returns None because it modifies the array in place.

Example 3: Trying to shuffle immutable types

Python
import numpy as np

arr = (1, 2, 3)
np.random.shuffle(arr)

Output

TypeError: 'tuple' object does not support item assignment

Explanation: You can’t shuffle tuples because they are immutable. Convert it to a list or NumPy array first.


Practice Tags :

Similar Reads