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

2024-03-28 14:12:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个数组列表,它由一个正态分布的随机值组成,每个数组的正态分布有不同的标准差。在第一个数组中,所有正态分布值的标准差都应该是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\u stdv中的每个元素创建一个数组,而不是为每个数组中的每个元素运行?谢谢你的帮助!你知道吗


Tags: 代码in元素列表fornprandom数组
1条回答
网友
1楼 · 发布于 2024-03-28 14:12:18

你一次又一次地覆盖同一个变量,把标准偏差向量传递给每个迭代,而不是一个单一的。只需做一次列表理解:

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

相关问题 更多 >