[Numpy-discussion] Possible bug in Numpy.convolve

Thøger Emil Rivera-Thorsen thoger.emil at gmail.com
Wed Mar 22 22:44:04 EDT 2017


OK, this is embarrassing.
I had in fact made the kernel only almost symmetric, it was slightly 
offset to one side.
This caused it. Only a wetware bug.
Sorry for having wasted your time!


On 03/23/2017 03:38 AM, josef.pktd at gmail.com wrote:
>
>
> On Wed, Mar 22, 2017 at 10:06 PM, Thøger Emil Rivera-Thorsen 
> <thoger.emil at gmail.com <mailto:thoger.emil at gmail.com>> wrote:
>
>     Dear list;
>
>     I am honestly not certain whether this, or the SciPy list, is the
>     appropriate place to post this; please let me know if I got it wrong.
>
>     I am convolving a 1D data set containing a relatively narrow peak,
>     with a relatively narrow Gaussian kernel, in order to emulate the
>     effect of atmospheric seeing on astrophysical observations.
>
>     I have a 1D data array 45 pixels long, and a Gaussian kernel, and
>     run np.convolve(data, kernel, mode='same') on the two arrays, the
>     resulting array's peak is shifted relative to the origin. I have
>     attached a plot to illustrate.
>
>     The original data is shown in blue. When I convolve it with a
>     symmetric kernel (black), I get an offset resulting peak
>     (magenta). If I flip the kernel -- even though it is perfectly
>     symmetric -- the resulting curve is offset in the opposite
>     direction (yellow). However, if I offset the kernel so it is
>     centered exactly one pixel below the central value, the output
>     array gets centered correct (red), even if I flip the (now no
>     longer symmetric) kernel.
>
>     This is using Numpy 1.11.3, python 2.7.13, on Anaconda 4.3.0
>     64-bit on Ubuntu 16.10
>
>     Using astropy.convolution, reproduces the correct red curve, so I
>     can use that for now, but it seems to me this is either a bug or,
>     if it is indeed the intended behavior, a word of caution would be
>     merited in the docstring.
>
>     Cheers,
>
>     Emil Rivera-Thorsen
>
>
>
>     _______________________________________________
>     NumPy-Discussion mailing list
>     NumPy-Discussion at scipy.org <mailto:NumPy-Discussion at scipy.org>
>     https://mail.scipy.org/mailman/listinfo/numpy-discussion
>     <https://mail.scipy.org/mailman/listinfo/numpy-discussion>
>
>
> Can you provide an example to replicate?
>
> I haven't seen this behavior, it looks centered to me, at least for 
> odd window length..
> AFAIR, I had to try a bit in the past for how to set the window and 
> location with even window length.
>
> >>> np.__version__
> '1.11.2'
>
> >>> x = np.linspace(-1, 1, 21)
> >>> w = stats.norm.pdf(np.linspace(-3, 3, 5))
> >>> np.column_stack((x, np.convolve(x, w, mode='same')))[8:13]
> array([[ -2.00000000e-01,  -1.33368234e-01],
>        [ -1.00000000e-01,  -6.66841169e-02],
>        [  0.00000000e+00, 1.51788304e-17],
>        [  1.00000000e-01, 6.66841169e-02],
>        [  2.00000000e-01, 1.33368234e-01]])
>
>
> >>> x = np.abs(np.linspace(-1, 1, 21))
> >>> w = stats.norm.pdf(np.linspace(-3, 3, 4))
> >>> np.column_stack((x, np.convolve(x, w, mode='same')))[8:13]
> array([[ 0.2       ,  0.12320129],
>        [ 0.1       ,  0.07392077],
>        [ 0.        ,  0.02552663],
>        [ 0.1       ,  0.02552663],
>        [ 0.2       ,  0.07392077]])
>
>
> >>> w = stats.norm.pdf(np.linspace(-3, 3, 5))
> >>> np.column_stack((x, np.convolve(x, w, mode='same')))[8:13]
> array([[ 0.2       ,  0.13336823],
>        [ 0.1       ,  0.06757049],
>        [ 0.        ,  0.02767626],
>        [ 0.1       ,  0.06757049],
>        [ 0.2       ,  0.13336823]])
>
> Josef
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> https://mail.scipy.org/mailman/listinfo/numpy-discussion


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20170323/ff9c80c5/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 32973 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20170323/ff9c80c5/attachment.png>


More information about the NumPy-Discussion mailing list