sampling random floats on a range in numpy

The uniform distribution would probably do what you are asking.

np.random.uniform(5,10) # A single value
np.random.uniform(5,10,[2,3]) # A 2x3 array

EDIT: just use random.uniform(10, 15) instead


without numpy you can do this with the random module.

import random
random.random()*5 + 10

will return numbers in the range 10-15, as a function:

>>> 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() returns a float from 0 to 1 (upper bound exclusive). multiplying it by a number gives it a greater range. ex random.random()*5 returns numbers from 0 to 5. Adding a number to this provides a lower bound. random.random()*5 +10 returns numbers from 10 to 15. I'm not sure why you want this to be done using numpy but perhaps I've misunderstood your intent.