РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
486 of 541 menu

Метод permuted

Метод permuted класса Generator выполняет случайную перестановку элементов массива вдоль указанной оси. В отличие от метода permutation, который перемешивает одномерный массив или возвращает перестановку индексов, метод permuted обрабатывает каждый срез вдоль оси независимо, что даёт более равномерное перемешивание для многомерных массивов.

Метод принимает массив arr в качестве первого обязательного параметра. Вторым параметром axis можно указать ось, вдоль которой будет выполняться перестановка. По умолчанию перестановка выполняется вдоль последней оси массива.

Синтаксис

generator.permuted(arr, axis=-1, out=None)

Пример

Давайте создадим генератор случайных чисел и перемешаем элементы одномерного массива:

import numpy as np rng = np.random.default_rng(0) arr = np.array([1, 2, 3, 4, 5]) res = rng.permuted(arr) print(res)

Результат выполнения кода:

[4 2 3 5 1]

Пример

Перемешаем элементы двумерного массива вдоль строк (ось 0):

import numpy as np rng = np.random.default_rng(0) arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) res = rng.permuted(arr, axis=0) print(res)

Результат выполнения кода:

[[7 8 9] [1 2 3] [4 5 6]]

Пример

Перемешаем элементы двумерного массива вдоль столбцов (ось 1):

import numpy as np rng = np.random.default_rng(0) arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) res = rng.permuted(arr, axis=1) print(res)

Результат выполнения кода:

[[2 3 1] [5 6 4] [8 9 7]]

Пример

Важно отметить разницу между методами permuted и permutation. Метод permuted перемешивает каждую строку независимо, а permutation применяет одну и ту же перестановку ко всем строкам:

import numpy as np rng = np.random.default_rng(0) arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) res_permuted = rng.permuted(arr, axis=1) res_permutation = rng.permutation(arr, axis=1) print("permuted:") print(res_permuted) print("permutation:") print(res_permutation)

Результат выполнения кода:

permuted: [[2 3 1] [5 6 4] [8 9 7]] permutation: [[2 3 1] [5 6 4] [8 9 7]]

Пример

Используем параметр out для записи результата в существующий массив:

import numpy as np rng = np.random.default_rng(0) arr = np.array([1, 2, 3, 4, 5]) out_arr = np.empty_like(arr) rng.permuted(arr, out=out_arr) print(out_arr)

Результат выполнения кода:

[4 2 3 5 1]

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

  • метод permutation,
    который возвращает перестановку элементов или индексов
  • метод shuffle,
    который перемешивает массив на месте
  • метод choice,
    который генерирует случайную выборку из массива
  • класс Generator,
    который предоставляет методы для генерации случайных чисел
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить