使用 numpy 生成从 0 到 1 的随机小数,正态分布
generate random decimal numbers from 0 to 1 with normal distribution using numpy
我是 numpy 的新手。我想使用 numpy 随机分布生成从 0 到 1 的随机值,已知输入是标准差 = 0.2 和均值 = 0.55,没有。人口 = 1000。我使用了这个代码:
number = np.random.normal(avg, std_dev, num_pop).round(2)
但是它生成了负值和大于 1 的数字。如何将值限制在 0 到 1 之间?
您可以使用
number = numpy.random.rand(1).round(2)
会生成一个区间[0,1]的随机数。
正态分布没有下限或上限,从中抽样并丢弃范围外的结果,直到获得 1000 个必要点,这会很尴尬。
幸运的是有截断的正态分布:
from scipy import stats
low = 0
high = 1
mean = 0.55
stddev = 0.2
num_pop = 1000
number = stats.truncnorm.rvs(low, high,
loc = mean, scale = stddev,
size = num_pop)
我是 numpy 的新手。我想使用 numpy 随机分布生成从 0 到 1 的随机值,已知输入是标准差 = 0.2 和均值 = 0.55,没有。人口 = 1000。我使用了这个代码:
number = np.random.normal(avg, std_dev, num_pop).round(2)
但是它生成了负值和大于 1 的数字。如何将值限制在 0 到 1 之间?
您可以使用
number = numpy.random.rand(1).round(2)
会生成一个区间[0,1]的随机数。
正态分布没有下限或上限,从中抽样并丢弃范围外的结果,直到获得 1000 个必要点,这会很尴尬。 幸运的是有截断的正态分布:
from scipy import stats
low = 0
high = 1
mean = 0.55
stddev = 0.2
num_pop = 1000
number = stats.truncnorm.rvs(low, high,
loc = mean, scale = stddev,
size = num_pop)