2012-08-08 16 views

Respuesta

26

El uniform distribution probablemente haga lo que está preguntando.

np.random.uniform(5,10) # A single value 
np.random.uniform(5,10,[2,3]) # A 2x3 array 
4
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]) 
1

sin numpy puede hacerlo con el módulo aleatorio.

import random 
random.random()*5 + 10 

volverá números en el rango de 10-15, como una función:

>>> 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() devuelve un flotador de 0 a 1 (límite superior exclusivo). multiplicándolo por un número le da un rango mayor. ex random.random()*5 devuelve números del 0 al 5. Agregar un número a esto proporciona un límite inferior. random.random()*5 +10 devuelve los números del 10 al 15. No estoy seguro de por qué quieres que esto se haga usando numpy, pero quizás he entendido mal tu intención.

+0

¿Por qué no simplemente usar 'random.uniform'? – DSM

+0

@DSM honestamente, porque no lo sabía –