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])