Подтвердить что ты не робот

Неповторное случайное число в numpy

Мой вопрос: как я могу генерировать неповторяющиеся случайные числа в numpy?

list = np.random.random_integers(20,size=(10))
4b9b3361

Ответ 1

Если вы не настаиваете на использовании NumPy, вы можете использовать random.sample() из стандартной библиотеки:

print random.sample(range(20), 10)

В NumPy вам нужно будет использовать numpy.random.shuffle() и нарезку:

a = numpy.arange(20)
numpy.random.shuffle(a)
print a[:10]

Ответ 2

Я думаю, что numpy.random.sample теперь не работает правильно. Это мой способ:

import numpy as np
np.random.choice(range(20), 10, replace=False)

Ответ 3

Просто сгенерируйте массив, который содержит требуемый диапазон чисел, затем перетасуйте их путем многократной замены случайного с 0-м элементом в массиве. Это создает случайную последовательность, которая не содержит повторяющихся значений.