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

Метод permutation

Метод permutation класса RandomState случайным образом переставляет элементы одномерного массива или возвращает переставленный диапазон чисел. Метод изменяет порядок элементов, но не изменяет исходный массив, если он передан как аргумент. В качестве параметра метод принимает одномерный массив, целое число или список.

Синтаксис

rng.permutation(x)

Пример

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

import numpy as np rng = np.random.RandomState(42) arr = np.array([1, 2, 3, 4, 5, 6]) res = rng.permutation(arr) print(res)

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

[2 5 1 6 3 4]

Пример

Если передать целое число, метод вернёт переставленный диапазон от нуля до переданного числа (не включая его):

import numpy as np rng = np.random.RandomState(42) res = rng.permutation(6) print(res)

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

[2 5 1 3 4 0]

Пример

Метод также работает со списками и не изменяет исходный объект:

import numpy as np rng = np.random.RandomState(42) data = ['a', 'b', 'c', 'd', 'e'] res = rng.permutation(data) print(res) print(data)

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

['d' 'e' 'b' 'a' 'c'] ['a', 'b', 'c', 'd', 'e']

Пример

С помощью метода permutation можно перемешать строки двумерного массива, переставив индексы:

import numpy as np rng = np.random.RandomState(42) arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) idx = rng.permutation(arr.shape[0]) res = arr[idx] print(res)

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

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

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

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