【发布时间】:2014-01-30 14:17:22
【问题描述】:
我正在运行一些代码,其目的是获取一个浮点列表/数组和一个具有相同长度的关联列表/数组作为“错误”,并根据高斯分布对第一个列表进行洗牌。
这是MWE的代码:
import random
import numpy as np
def random_data(N, a, b):
# Generate some random data.
return np.random.uniform(a, b, N).tolist()
# Obtain values for x.
x = random_data(100, 0., 1.)
# Obtain error/sigma values for x.
x_sigma = random_data(100, 0., 0.2)
# Generate new x values shuffling each float around a
# Gaussian distribution with a given sigma.
x_gauss = random.gauss(np.array(x), np.array(x_sigma))
print x-x_gauss
我发现执行x-x_gauss 的结果是一个始终为正或负的浮点列表。这意味着random.gauss 调用总是为x 中的每个浮点数分配一个较大的新值,或者为x 中的所有值分配一个较小的新值。
我希望random.gauss 调用将x 中的浮点数围绕其值左右移动,因为这是一个随机过程。
为什么没有发生这种情况?我对这个过程的理解有问题吗?
【问题讨论】: