2017-09-23 295 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