Массив перетасовки
Я использую Numpy, чтобы перемешать массив с около 1 миллиона записей. Полученный массив, кажется, не в произвольном порядке, я вижу последовательности.
Например, если оригинал:
ar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
тогда я вижу такие последовательности в результате:
[6,7,8,5,10,1,2,3,4]
Это нормально и есть ли лучший способ перемешать массив в Numpy?
РЕДАКТИРОВАТЬ:
Код: np.random.shuffle(ar)
Выходные последовательности моих глаз заметят:
510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 640 638 608 608 608 650 650 650 650 650 650 650 0 0 0 640 640 640 640 640 640 640 640 640 640 650 650 568 568 568 568 568 1280 568 568 568 568 568 568 568 608 608 608 608 0 0 0 0 0 0 0 0 0 640 640 600 600 600 600 0 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 640 640 660 650 650 0 0 608 608 608 608 640 640 640 640 640 640 640 640 640 640 640 640 640 640 650 650 650 650 650 650 650 568 608 568 568 568 568 568 568 568 608 608 608 608 608 608 608 608 608 0 0 0 0 0 0 0 0 640 640 600 600 600 600 600 640 0 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 510 640 660 608 608 608 608 640 650 650 650 650 0 0 0 0 0 640 608 608 608 640 640 640 640 640 640 640 640 640 640 640 640 640 640 640 640 640 640 640 640 640 640 640 640 640 640 640
РЕДАКТИРОВАТЬ 2: тест с вводом:
200000 x 1
400000 x 2
250000 x 3
5000 x 4
700000 x 5
2000000 x 6
175000 x 7
225000 x 8
700000 x 9
350000 x 10
75000 x 11
5000000 x 12
2000000 x 13
450000 x 14
50000 x 15
350000 x 16
900000 x 17
2500000 x 18
2000000 x 19
50000 x 20
np.random.shuffle(a)
Первые 100 результатов:
17, 6, 18, 12, 19, 14, 13, 13, 19, 18, 12, 12, 14, 12, 13, 19, 17, 8, 19, 3, 6, 18, 6, 9, 12, 12, 3, 16, 3, 12, 14, 9, 6, 5, 18, 12, 19, 1, 5, 13, 19, 5, 6, 5, 18, 12, 13, 7, 12, 12, 2, 18, 11, 12, 13, 19, 6, 18, 19, 13, 7, 12, 6, 9, 12, 12, 18, 2, 20, 6, 6, 19, 19, 13, 19, 12, 12, 12, 12, 19, 13, 18, 19, 6, 13, 6, 18, 6, 12, 9, 13, 12, 17, 1, 12, 17, 19, 13, 13, 18,
1 ответ
Вы обязательно увидите последовательности (если вам действительно повезет, даже все в порядке). Я полагаю, вы делаете np.random.shuffle(ar)
, Это сделает псевдослучайное изменение порядка элементов. Для всех практических целей это случайность, которую вы ищете.
Попробуйте запустить:
for _ in range(1000):
np.random.shuffle(ar)
print(ar)
глядя на результаты, вы найдете некоторые последовательности и, возможно, даже повторы, но каждая из них на самом деле является случайным переупорядочением вашего массива.