Spec-Zone.ru › NumPy 2.0

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
permutation

Примечания

Важное различие между методами 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API