Comment puis-je échantillonner des flottants aléatoires sur un intervalle [a, b] dans numpy? Pas seulement des nombres entiers, mais des nombres réels. Par exemple,
random_float(5, 10)
renverrait des nombres aléatoires entre [5, 10]
. Merci.
Le distribution uniforme ferait probablement ce que vous demandez.
np.random.uniform(5,10) # A single value
np.random.uniform(5,10,[2,3]) # A 2x3 array
import numpy as np
>>> 5 + np.random.sample(10) * 5
array([ 7.14292096, 6.84837089, 6.38203972, 8.80365208, 9.06627847,
5.69871186, 6.37734538, 9.60618347, 9.34319843, 8.63550653])
sans numpy, vous pouvez le faire avec le module aléatoire.
import random
random.random()*5 + 10
renverra des nombres compris entre 10 et 15, en fonction:
>>> import random
>>> def random_float(low, high):
... return random.random()*(high-low) + low
...
>>> random_float(5,10)
9.3199502283292208
>>> random_float(5,10)
7.8762002129171185
>>> random_float(5,10)
8.0522023132650808
random.random()
renvoie un flottant de 0 à 1 (limite supérieure exclusive). le multiplier par un nombre lui donne une plus grande portée. ex random.random()*5
renvoie des nombres de 0 à 5. L'ajout d'un nombre à cela fournit une limite inférieure. random.random()*5 +10
renvoie des nombres de 10 à 15. Je ne sais pas pourquoi vous voulez que cela soit fait en utilisant numpy mais peut-être que j'ai mal compris votre intention.