使用numpy.random

时间:2013-11-03 08:01:29

标签: python numpy noise normal-distribution

我在使用numpy.random.normal时遇到了一些麻烦。在此链接的底部(http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.normal.html),有一个显示标准偏差的图表。我对此有点困惑,因为它看起来不像0.1,0.2,0.3等标准偏差。它也看起来不像1,2或3个标准偏差。

我要做的是在特定的标准偏差下为图像添加噪点。但是,我得到的结果实在是非常奇怪。我的代码(在Python中)如下所示:

poisson = float((raw_input("Noise standard deviation: ")))
.
.
.
name = t+'PHOTO'+s+str(i)+'.fits'

    im = pf.open(name)
    isinstance(im,list)
    im0 = im[0]
    poissonNoise = np.random.normal(0,poisson/1000, im0.data.shape).astype(float)
    test = im0.data + poissonNoise
    im0.data = test
    stringee = 'NOISE'
    pf.writeto(stringee+str(poisson)+name, data=test, clobber=True, header=im0.header)
print poisson

如果你注意到,我会分开" poisson"到1000,以获得有意义的结果。那么标准差的真正价值是什么,我该如何使用呢?我想做的就是能够输入1,2,3等标准偏差并产生很大的噪音。

1 个答案:

答案 0 :(得分:2)

看起来你在混合各种东西。关于问题讨论的数字

enter image description here

X轴仅为X Standard Deviations。请记住,对于一个分布(此处为Normal),只有一个单值标准差,可以轻松计算numpy.std

顺便说一下,您的代码不是安静的Python代码。这是什么:isinstance(im,list)是为了什么?还要记住,缩进是Python的核心。