# [Numpy-discussion] Reflect array?

Benjamin Root ben.v.root at gmail.com
Tue Mar 29 14:02:07 EDT 2016

```Along those lines, yes, but you have to be careful of even/odd dimension
lengths. Would be nice if it was some sort of stride trick so that I don't
have to allocate a new array twice as we do in the concatenation steps.

Cheers!

Ben Root

On Tue, Mar 29, 2016 at 1:58 PM, Joseph Fox-Rabinovitz <
jfoxrabinovitz at gmail.com> wrote:

> On Tue, Mar 29, 2016 at 1:46 PM, Benjamin Root <ben.v.root at gmail.com>
> wrote:
> > Is there a quick-n-easy way to reflect a NxM array that represents a
> > quadrant into a 2Nx2M array? Essentially, I am trying to reduce the size
> of
> > an expensive calculation by taking advantage of the fact that the first
> part
> > of the calculation is just computing gaussian weights, which is radially
> > symmetric.
> >
> > It doesn't seem like np.tile() could support this (yet?). Maybe we could
> > allow negative repetitions to mean "reflected"? But I was hoping there
> was
> > some existing function or stride trick that could accomplish what I am
> > trying.
> >
> > x = np.linspace(-5, 5, 20)
> > y = np.linspace(-5, 5, 24)
> > z = np.hypot(x[None, :], y[:, None])
> > zz = np.hypot(x[None, :int(len(x)//2)], y[:int(len(y)//2), None])
> > zz = some_mirroring_trick(zz)
>
> Are you looking for something like this:
>
> zz = np.hypot.outer(y[:len(y)//2], x[:len(x)//2])
> zz = np.concatenate((zz[:, ::-1], zz), axis=1)
> zz = np.concatenate((zz, zz[::-1, :]))
>
> > assert np.all(z == zz)
> >
> > What can be my "some_mirroring_trick()"? I am hoping for something a
> little
> > better than using hstack()/vstack().
> >
> > Thanks,
> > Ben Root
> >
> > _______________________________________________
> > NumPy-Discussion mailing list
> > NumPy-Discussion at scipy.org
> > https://mail.scipy.org/mailman/listinfo/numpy-discussion
> >
> _______________________________________________
> 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/20160329/f2fb1667/attachment.html>
```