创建具有预先确定的均值和标准差的数组

EOR*_*ORS 6 python arrays numpy mean

我正在尝试使用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)
Run Code Online (Sandbox Code Playgroud)

如何通过mean和std控制数组值?

Jun*_*ius 8

使用numpy.random.normal.如果你的意思是my_mean和你的标准my_str:

x = np.random.normal(loc=my_mean, scale=my_std, size=1000)
Run Code Online (Sandbox Code Playgroud)


sac*_*cuL 5

另一种解决方案,使用np.random.randn

my_std * np.random.randn(1000) + my_mean
Run Code Online (Sandbox Code Playgroud)

例:

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
Run Code Online (Sandbox Code Playgroud)

使用相同的随机种子,实际上产生与以下结果完全相同的结果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=10)
# array([ 0.03741785,  0.02154339,  0.04119221,  0.06307575,  0.01914617])
Run Code Online (Sandbox Code Playgroud)


Cod*_*ice 1

由于您已经知道平均值和标准差,因此您有两个自由度。这意味着您可以为数组中除两个元素之外的所有元素选择随机数。最后两项必须通过求解均值和标准差公式给出的方程组来计算。

  • 我同意这个问题非常不清楚,但似乎OP真正想要的是一组具有指定平均值和标准差的高斯RV数组 (3认同)