How can I sample random floats on an interval [a, b] in numpy? Not just integers, but any real numbers. For example,
random_float(5, 10)
would
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.