numpy.random.Generator.permuted
метод
- random.Generator.permuted(x, axis=None, out=None)
-
Случайным образом переставляет
xпо осиaxis.В отличие от
shuffle, каждый срез вдоль заданной оси перетасовывается независимо от других.- Параметры:
-
- xarray_like, как минимум одномерный
-
Массив, который нужно перетасовать.
- axisint, необязательно
-
Срезы
xпо этой оси перетасовываются. Каждый срез перетасовывается независимо от других. Еслиaxisравно None, массив сглаживается и перетасовывается. - outndarray, необязательно
-
Если задано, это место назначения перетасованного массива. Если
outравно None, возвращается перетасованная копия массива.
- Возвращает:
-
- ndarray
-
Если
outравно None, возвращается перетасованная копияx. В противном случае, перетасованный массив сохраняется вout, и возвращаетсяout
См. также
Примечания
Важное различие между методами
shuffleиpermutedзаключается в том, как они оба обрабатывают параметрaxis, который можно найти в Обработка параметра axis.Примеры
Создайте экземпляр
numpy.random.Generator:>>> rng = np.random.default_rng()
Создайте тестовый массив:
>>> x = np.arange(24).reshape(3, 8) >>> x array([[ 0, 1, 2, 3, 4, 5, 6, 7], [ 8, 9, 10, 11, 12, 13, 14, 15], [16, 17, 18, 19, 20, 21, 22, 23]])Перетасуйте строки
x:>>> y = rng.permuted(x, axis=1) >>> y array([[ 4, 3, 6, 7, 1, 2, 5, 0], # random [15, 10, 14, 9, 12, 11, 8, 13], [17, 16, 20, 21, 18, 22, 23, 19]])xне был изменён:>>> x array([[ 0, 1, 2, 3, 4, 5, 6, 7], [ 8, 9, 10, 11, 12, 13, 14, 15], [16, 17, 18, 19, 20, 21, 22, 23]])Чтобы перетасовать строки
xна месте, передайтеxв качестве параметраout:>>> y = rng.permuted(x, axis=1, out=x) >>> x array([[ 3, 0, 4, 7, 1, 6, 2, 5], # random [ 8, 14, 13, 9, 12, 11, 15, 10], [17, 18, 16, 22, 19, 23, 20, 21]])Обратите внимание, что когда задан параметр
out, возвращаемое значение являетсяout:>>> y is x True
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/random/generated/numpy.random.Generator.permuted.html