Для случайной перестановки в массиве используйте метод np random shuffle(). Функция shuffle() изменяет последовательность, перемешивая ее содержимое.
Что такое функция np.random.shuffle в Python?
Функция np.random.shuffle() используется в Python для изменения последовательности на месте путем перетасовки содержимого массива. Метод numpy random shuffle() принимает один аргумент с именем seq_name и возвращает измененную форму исходной последовательности. В случае многомерных массивов массив перемешивается только по первой оси.
Кроме того, изменяется только порядок подмассивов в многомерных массивах, а не содержимое внутри подмассивов. Один момент, который следует иметь в виду, заключается в том, что случайный метод shuffle() изменяет исходную последовательность и не возвращает новую последовательность.
Вы должны установить numpy для этого урока. Кроме того, проверьте свою версию numpy.
Синтаксис
|
1 |
numpy.random.shuffle(seq_name) |
Параметры
Функция numpy shuffle() принимает только один параметр:
seq_name: это входная последовательность, элементы которой должны быть перемешаны на месте.
Возвращаемое значение
Метод shuffle() возвращает измененную форму исходной последовательности.
Примеры программирования

Программа для демонстрации работы numpy.random.shuffle()
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# importing the numpy module import numpy as np # Making a list of integers org_list = [10, 20, 30, 40, 50, 60] # Converting the list into a numpy array seq = np.array(org_list) # Printing content of original sequence print("Original order of the sequence is :", seq) # Performing shuffling operation np.random.shuffle(seq) # Printing the content of sequence after shuffling print("\nOutput sequence obtained after shuffling is: ", seq) |
Выход:
|
1 2 3 |
Original order of the sequence is : [10 20 30 40 50 60] Output sequence obtained after shuffling is: [10 50 40 30 60 20] |
Объяснение:
В приведенном выше примере кода мы взяли список целых чисел с именем org_list и сохранили несколько целочисленных элементов внутри списка. Затем мы передали полный список в качестве параметра внутри метода np.array(), который преобразует обычный список в пустой массив.
Мы можем просмотреть порядок элементов исходной последовательности, распечатав ее содержимое. Затем эта последовательность передается как единственный параметр внутри numpy.random.shuffle() для изменения ее содержимого.
Метод np random shuffle() возвращает перетасованную последовательность, и это можно проверить, напечатав порядок элементов в измененной последовательности. Как видно из вывода, содержимое исходной последовательности также перемешивается; метод не возвращает новую последовательность.
Программа с np.random.shuffle() при многомерных массивах
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# importing the numpy module import numpy as np # Making original sequence of multi-dimensional array seq = np.array([[9, 8, 7], [6, 5, 4], [3, 2, 1]]) # Printing the shape of multi-dimensional array print("Shape of original sequence is: ", seq.shape) # Printing content of original sequence print("Original order of the sequence is :", seq) # Performing shuffling operation np.random.shuffle(seq) # Printing the content of sequence after shuffling print("\nOutput sequence obtained after shuffling is: ", seq) print("Shape of shuffled sequence is: ", seq.shape) |
Выход:
|
1 2 3 4 5 6 7 8 9 |
Shape of original sequence is: (3, 3) Original order of the sequence is : [[9 8 7] [6 5 4] [3 2 1]] Output sequence obtained after shuffling is: [[6 5 4] [3 2 1] [9 8 7]] Shape of shuffled sequence is: (3, 3) |
Объяснение:
В приведенном выше примере кода многомерный массив формы 3X3 был создан как исходная последовательность, содержащая несколько случайных целых чисел.
Теперь мы можем просмотреть порядок элементов исходной последовательности, распечатав ее содержимое. Затем эта последовательность передается как единственный параметр внутри numpy.random.shuffle() для изменения ее содержимого.
Метод shuffle() возвращает перемешанную последовательность. Можно проверить, напечатав порядок элементов в измененной последовательности, что подмассивы перетасовываются только вдоль своей первой оси, т. е. по строкам.
Кроме того, содержимое, хранящееся внутри подмассивов, остается в том же порядке и не перемешивается.
Перетасовка многомерных массивов с использованием arange() и shuffle()
Метод Numpy arange() возвращает объект ndarray, содержащий равномерно распределенные значения в заданном диапазоне. Мы можем создать 9 случайных элементов, затем изменить их форму (3 x 3), а затем перемешать элементы с помощью метода np random shuffle().
|
1 2 3 4 5 6 7 8 |
# importing the numpy module import numpy as np arr = np.arange(9).reshape(3, 3) np.random.shuffle(arr) print(arr) |
Выход:
|
1 2 3 |
[[3 4 5] [0 1 2] [6 7 8]] |
Если вы повторно запустите файл, вы увидите другие результаты. Он рандомизирует элементы в определенном порядке в форме массива.
