【问题标题】:Adding noise to numpy array向 numpy 数组添加噪声
【发布时间】: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 值中?

【问题讨论】:

    标签: python arrays numpy vector noise


    【解决方案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)
      

      一次性完成所有操作(并且不重复数组大小)。

      【讨论】:

      • 这似乎正是我想要的效果。非常感谢!
      猜你喜欢
      • 2017-10-30
      • 2021-09-04
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      • 2015-03-31
      • 1970-01-01
      • 2014-09-05
      • 2016-06-29
      相关资源
      最近更新 更多