<div dir="ltr"><div><div><div><div><div><div><div>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.<br><br></div>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.<br><br></div>x = np.linspace(-5, 5, 20)<br></div>y = np.linspace(-5, 5, 24)<br></div><div>z = np.hypot(x[None, :], y[:, None])<br></div>zz = np.hypot(x[None, :int(len(x)//2)], y[:int(len(y)//2), None])<br></div></div>zz = some_mirroring_trick(zz)<br></div>assert np.all(z == zz)<br><div><br></div><div>What can be my "some_mirroring_trick()"? I am hoping for something a little better than using hstack()/vstack().<br><br></div><div>Thanks,<br></div><div>Ben Root<br></div></div>