我试图根据正态分布创建一个由随机值组成的数组列表,每个数组的正态分布具有不同的标准偏差。我应该拥有的是在第一个数组中所有正态分布值都应该有0.01的标准偏差,在第二个数组中所有应该具有0.02的标准差,依此类推至1.我的代码如下所示:
noise_stdv = np.linspace(0.01, 1, 100)
for i in noise_stdv:
noise1 = [np.random.normal(0, noise_stdv, 100) for i in range(100)]
但是这会创建一个列表,使得每个数组中的第一个元素的标准偏差为0.01,第二个元素的标准差为0.02,依此类推,而不是标准偏差为0.01的整个第一个元素等。 / p>
如何使for循环运行并为noise_stdv中的每个元素创建一个数组,而不是为每个数组中的每个元素运行?谢谢你的帮助!
答案 0 :(得分:1)
您反复覆盖相同的变量,并将标准差的向量而不是单个向量传递给每次迭代。只做列表理解一次:
noise_stdv = np.linspace(0.01, 1, 100)
noises = [np.random.normal(0, std, 100) for std in noise_stdv]