randrange(start, stop)solo toma argumentos enteros. Entonces, ¿cómo obtendría un número aleatorio entre dos valores flotantes?
python
random
floating-point
Trineo Mantis
fuente
fuente

np.random.uniform(start, stop)onp.random.uniform(start, stop, samples)si quería múltiples muestras. De lo contrario, las respuestas a continuación son las mejores.Respuestas:
Utilice random.uniform (a, b) :
fuente
Returns a random floating point number N such that a <= N <= b for a <= b and b <= N <= a for b < aEn otras palabras, la salidaNpuede ser igual a la entradaayb. En este caso1.5y1.9..uniformfunción, sino con cualquiera.randomorandrange?1.5 + random.random() * (1.9 - 1.5)debería hacerlo, aunque de acuerdo con las especificaciones, esto nunca volverá exactamente1.9(incluso en teoría).uniform(a, b)implementado comoa + (b-a) * random()y devuelve un número aleatorio en el rango [a, b) o [a, b] dependiendo del redondeo github.com/python/cpython/blob/…random.uniform(a, b)parece ser lo que estás buscando. De los documentos:Ver aquí .
fuente
si desea generar un flotante aleatorio con N dígitos a la derecha del punto, puede hacer esto:
El segundo argumento es el número de decimales.
fuente
Más comúnmente, usarías:
Python proporciona otras distribuciones si lo necesita.
Si ya ha
numpyimportado, puede usar su equivalente:Nuevamente, si necesita otra distribución,
numpyproporciona las mismas distribuciones que python, así como muchas más .fuente