我想创建一个包含正态分布列表的列表,以给定开头平均值、样本量和标准偏差,但是在随后的迭代/列表中,平均值动态地遵循arctan曲线。
考虑:
np.random.normal(5, 1.5, size=(52, 400))
array([[5.91413507, 6.03442582, 5.13545575, ..., 4.70864259, 4.46786696,
5.907657 ],
[5.96475187, 2.78293757, 6.6995019 , ..., 6.75333878, 4.40617338,
5.78887913],
[2.24474929, 4.86493468, 4.81687713, ..., 4.64654325, 4.52163674,
3.65247517],
...,
[8.26692519, 4.17375668, 6.53084905, ..., 3.52156159, 2.81350621,
5.1208226 ],
[2.1335012 , 3.84207539, 4.5672884 , ..., 5.86160579, 1.59491514,
2.31374464],
[4.28164175, 5.30687236, 3.32682318, ..., 6.54310196, 2.36919655,
6.23774753]])
上面输出一个包含52个列表的数组,每个列表有400个数据点,这52个列表的平均值为5和,标准差为1.5。
但我希望能够有平均值只有开始在5,然后动态增加arctan函数在这52次迭代,同时保持每个后续列表的样本量和标准差恒定。
如何做到这一点?
arctan
从-pi/2
到+pi/2
变化,所以如果我理解正确的话,您希望平均值从5
到5 + pi
变化。如果是,你可以
mean = 5
sd = 1.5
means = np.arctan(np.linspace(-4, 4, 52)) + np.pi/2 + mean
a = np.random.normal(means, sd, size=(400, 52)).T
这给了你一个52行400列的数组,这些行的平均值从第0行5
开始,根据arctan函数增加到第51行5 + pi
。每一行的标准差为1.5
。