使用 for 循环在 Python 中创建多个标准差的正态分布

Creating a normal distribution in Python over many standard deviations with a for loop

我正在尝试根据正态分布创建一个由随机值组成的数组列表,每个数组的正态分布具有不同的标准差。我应该拥有的是,在第一个数组中,所有正态分布值的标准差应为 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 等.

如何才能让 for 循环运行并为 noise_stdv 中的每个元素创建一个数组,而不是为每个数组中的每个元素创建 运行?感谢您的帮助!

您一遍又一遍地覆盖同一个变量,并在每次迭代中传递标准差向量而不是单个变量。只做一次列表理解:

noise_stdv = np.linspace(0.01, 1, 100)
noises = [np.random.normal(0, std, 100) for std in noise_stdv]