web-dev-qa-db-fra.com

Nombre aléatoire non répétitif dans numpy

Ma question est la suivante: comment générer des nombres aléatoires non répétitifs dans numpy?

list = np.random.random_integers(20,size=(10))
51
Academia

Si vous n'insistez pas pour utiliser NumPy, vous pouvez utiliser random.sample() à partir de la bibliothèque standard:

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

Avec NumPy, vous devrez utiliser numpy.random.shuffle() et découper:

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

Je pense que numpy.random.sample ne fonctionne pas correctement, maintenant. C'est mon chemin:

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

Vous pouvez l'obtenir en triant également:

random_numbers = np.random.random([num_samples, max_int])
samples = np.argsort(random_numbers, axis=1)
0
Ben