Функция numpy.random.permutation() в NumPy

В этом руководстве представлены методы обновления пакета NumPy в Python.

Случайная перестановка NumPy с функцией numpy.random.permutation() в Python

Функция numpy.random.permutation() в основном используется для двух целей: для получения произвольно переставляемой копии последовательности и получения случайно переставляемого диапазона в Python. Ключевые различия между функциями permutation() и shuffle() заключаются в том, что при передаче массива функция permutation() возвращает перетасованную копию исходного массива. Напротив, функция shuffle() перемешивает исходный массив. И, если мы передадим целое число, функция permutation() даст нам случайно переставленную последовательность чисел заданной длины, в то время как для того же процесса нам потребуется использовать функцию numpy.arange() с shuffle(). Следующие примеры кода демонстрируют различия между функцией permutation() и функцией shuffle() в Python.

Пример №1:

import numpy as np
array = np.array([0,1,0,0,4])
shuffled = np.random.permutation(array)
np.random.shuffle(array)
print(shuffled)
print(array)

Выход:

[0 0 4 1 0]
[0 4 0 1 0]

Пример №2:

permuted = np.random.permutation(5)
print(permuted)
sequence = np.arange(5)
np.random.shuffle(sequence)
print(sequence)

Выход:

[3 1 4 0 2]
[4 3 0 1 2]

В первом примере мы продемонстрировали разницу между функцией permutation() и функцией shuffle(), когда массив передается в обе функции. Функция permutation() возвращает перемешанную копию array, а функция shuffle() перемешивает исходный массив.

Во втором примере мы продемонстрировали разницу между функцией permutation() и функцией shuffle() при передаче целого числа. Функция permutation(n) возвращает перемешанный массив с последовательностью n целых элементов, а для имитации этого поведения с помощью функции shuffle() мы должны сначала создать последовательность n целых чисел с Функция np.arange(). Затем функция shuffle() перемешивает эту вновь созданную последовательность целочисленных элементов.