向 numpy 数组添加噪声
Posted
技术标签:
【中文标题】向 numpy 数组添加噪声【英文标题】:Adding noise to numpy array 【发布时间】:2018-03-05 05:49:49 【问题描述】:假设我正在尝试创建一个包含 100 个样本的数据集,该数据集遵循某条线,可能是 2x+2。我希望 X 轴上的值范围为 0-1000。为此,我使用以下内容。
X = np.random.random(100,1) * 1000
Y = (2*X) + 2
data = np.hstack(X,Y)
hstack 为我提供了具有相应 x 和 y 值的数组。那部分有效。但是,如果我想向其中注入噪声以将数据点分散到远离 2x+2 线的地方……那是我无法弄清楚的。
例如,我希望 Y 数组的标准差为 20。如何将噪声注入到 y 值中?
【问题讨论】:
【参考方案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)))
【讨论】:
【参考方案2】:也许我遗漏了一些东西,但是您是否尝试将numpy.random.normal
(scale=20,size=100)
添加到Y
?你甚至可以写
Y=numpy.random.normal(2*X+2,20)
一次性完成所有操作(并且不重复数组大小)。
【讨论】:
这似乎正是我想要的效果。非常感谢!以上是关于向 numpy 数组添加噪声的主要内容,如果未能解决你的问题,请参考以下文章
将 Python numpy 数组转换为 PyQt QPixmap 图像导致噪声图像