2017-09-23 86 views
0

所以说我正在试图创建一个100行的数据集,它可能跟随某一行,也许是2x + 2。我想我的X轴上的值范围从0-1000。为此,我使用以下内容。向numpy数组添加噪音

X = np.random.random(100,1) * 1000 
Y = (2*X) + 2 
data = np.hstack(X,Y) 

该堆栈给我带有相应的x和y值的数组。该部分起作用。但是,如果我想向它注入噪声以便将数据点更远离该2x + 2线......这是我无法弄清楚的。

举例来说,我希望Y数组的标准偏差为20.我该如何将这种噪声注入y值?

回答

1

也许我错过了一些东西,但你有没有尝试加numpy.random.normal(scale=20,size=100)Y?你甚至可以写

Y=numpy.random.normal(2*X+2,20) 

并立即做所有事情(并且不重复数组大小)。

+0

这似乎恰好有我一直在寻找的效果。非常感激! – MPeal

1

模拟噪声使用一个正态分布的随机数发生器,如np.random.randn

这就是你正在尝试做的:

X = np.linspace(0, 1000, 100) 
Y = (2*X) + 2 + 20*np.random.randn(100) 
data = np.hstack((X.reshape(100,1),Y.reshape(100,1))) 

enter image description here