Мой вопрос: как я могу генерировать неповторяющиеся случайные числа в numpy?
list = np.random.random_integers(20,size=(10))
Ответ 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-м элементом в массиве. Это создает случайную последовательность, которая не содержит повторяющихся значений.