numpy.random.shuffle() in python
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:
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
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
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
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.