[英]Create an array with a pre determined mean and standard deviation
我正在尝试使用 Numpy 创建一个具有预定平均值和标准偏差值的数组。 该数组需要其中的随机数。
到目前为止,我可以生成一个数组并计算平均值和标准差。 但无法获得由值控制的数组:
import numpy as np
x = np.random.randn(1000)
print("Average:")
mean = x.mean()
print(mean)
print("Standard deviation:")
std = x.std()
print(std)
如何通过均值和标准差控制数组值?
使用numpy.random.normal
。 如果你的意思是my_mean
和你的 std my_str
:
x = np.random.normal(loc=my_mean, scale=my_std, size=1000)
另一个解决方案,使用np.random.randn
:
my_std * np.random.randn(1000) + my_mean
例子:
my_std = 0.025
my_mean = 0.025
x = my_std * np.random.randn(1000) + my_mean
x.mean()
# 0.025493112966038879
x.std()
# 0.024464870590114995
使用相同的随机种子,这实际上产生与numpy.random.normal
完全相同的结果:
np.random.seed(42)
my_std * np.random.randn(5) + my_mean
# array([ 0.03741785, 0.02154339, 0.04119221, 0.06307575, 0.01914617])
np.random.seed(42)
np.random.normal(loc=my_mean, scale=my_std, size=5) #note the size here is 5 now
# array([ 0.03741785, 0.02154339, 0.04119221, 0.06307575, 0.01914617])
由于您已经知道均值和标准差,因此您有两个自由度。 这意味着您可以为数组中除两个元素之外的所有元素选择随机数。 最后两个必须通过求解由 mean 和 stddev 公式给出的方程组来计算。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.