0

我在使用 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

如果您注意到,我将“泊松”除以 1000 以获得有意义的结果。那么标准差的真实值是多少,我该如何使用呢?我想要做的就是能够输入 1、2、3 等标准偏差并产生那么多噪音。

4

1 回答 1

2

看来你把事情混在一起了。关于问题中的讨论图

在此处输入图像描述

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

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

于 2013-11-03T08:47:39.217 回答