numpy.random.shuffle

numpy.random.shuffle(x)

Функция random.shuffle() возвращает случайную перестановку элементов массива.

Данная функция выполняет перестановку только по первой оси, поэтому для многомерных массивов возвращается перестановка его подмассивов, в то время как содержание этих подмассивов не перемешивается

Параметры:
x - массив NumPy или подобный массиву объект.
Входные данные.
out - массив NumPy, необязательный параметр.
Массив в который можно поместить результат функции. Данный массив должен соответствовать форме и типу данных результирующего массива функции, а так же обязательно быть C-смежным, т.е. хранить данные в строчном С стиле. Указание данного параметра, позволяет избежать лишней операции присваивания тем самым немного ускоряя работу вашего кода. Полезный параметр если вы очень часто обращаетесь к функции в цикле.
Возвращает:
результат - None
Данная функция ничего не возвращает, а изменяет сам входной массив.

Замечание

Если вам необходимо сохранить исходный массив в неизменном виде, то применяйте данную функцию к копии исходного массива, которую можно создать с помощью функций numpy.copy() или numpy.copyto().

Смотрите так же:
permutation

Примеры

>>> import numpy as np
>>> 
>>> x = np.arange(7)
>>> 
>>> np.random.shuffle(x)
>>> x
array([2, 5, 3, 6, 1, 0, 4])
>>> 
>>> y = np.arange(6).reshape(3, 2)
>>> y
array([[0, 1],
       [2, 3],
       [4, 5]])
>>> 
>>> np.random.shuffle(y)
>>> y
array([[4, 5],
       [2, 3],
       [0, 1]])
>>>
>>>
>>> #  Что бы не изменять исходный массив 
... #  необходимо сделать его полную копию:
... a = np.arange(7)
>>> a
array([0, 1, 2, 3, 4, 5, 6])
>>> 
>>> b = a    #  ссылаются на одни и те же данные
>>> c = np.copy(a)    #  данные полностью копируются
>>> 
>>> np.random.shuffle(c)
>>> c
array([2, 4, 1, 3, 5, 0, 6])
>>>
>>> a    #  не изменилось
array([0, 1, 2, 3, 4, 5, 6])
>>> 
>>> np.random.shuffle(b)
>>> b
array([1, 4, 5, 0, 3, 6, 2])
>>>
>>> a    #  изменилось
array([1, 4, 5, 0, 3, 6, 2])