向 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 数组添加噪声的主要内容,如果未能解决你的问题,请参考以下文章

如何向 NumPy 数组添加额外的列

将 Python numpy 数组转换为 PyQt QPixmap 图像导致噪声图像

是否可以在 numpy 数组中添加不同长度的行,然后在 python 中向该行添加元素?

我想将噪声应用于由3D numpy数组描绘的体积

将高斯噪声添加到没有 numpy 的图像

将 numpy 数组转换为 4D nifti 文件