Hey Ben, Side note: I've had to do the same thing for stitching curvilinear model grid coordinates together. Usings pandas DataFrames indexed by `i` and `j` is really good for this. You can offset the indices directly, unstack the DF, and the pandas will align for you.
Happy to send an example along if you're curious. -p On Mon, Sep 8, 2014 at 9:55 AM, Benjamin Root <ben.r...@ou.edu> wrote: > A use case would be "image stitching" or even data tiling. I have had to > implement something like this at work (so, I can't share it, unfortunately) > and it even goes so far as to allow the caller to specify how much the > tiles can overlap and such. The specification is ungodly hideous and I > doubt I would be willing to share it even if I could lest I release > code-thulu upon the world... > > I think just having this generalize stack feature would be nice start. > Tetris could be built on top of that later. (Although, I do vote for at > least 3 or 4 dimensional stacking, if possible). > > Cheers! > Ben Root > > > On Mon, Sep 8, 2014 at 12:41 PM, Eelco Hoogendoorn < > hoogendoorn.ee...@gmail.com> wrote: > >> Sturla: im not sure if the intention is always unambiguous, for such more >> flexible arrangements. >> >> Also, I doubt such situations arise often in practice; if the arrays arnt >> a grid, they are probably a nested grid, and the code would most naturally >> concatenate them with nested calls to a stacking function. >> >> However, some form of nd-stack function would be neat in my opinion. >> >> On Mon, Sep 8, 2014 at 6:10 PM, Jaime Fernández del Río < >> jaime.f...@gmail.com> wrote: >> >>> On Mon, Sep 8, 2014 at 7:41 AM, Sturla Molden <sturla.mol...@gmail.com> >>> wrote: >>> >>>> Stefan Otte <stefan.o...@gmail.com> wrote: >>>> >>>> > stack([[a, b], [c, d]]) >>>> > >>>> > In my case `stack` replaced `hstack` and `vstack` almost completely. >>>> > >>>> > If you're interested in including it in numpy I created a pull request >>>> > [1]. I'm looking forward to getting some feedback! >>>> >>>> As far as I can see, it uses hstack and vstack. But that means a and b >>>> have >>>> to have the same number of rows, c and d must have the same rumber of >>>> rows, >>>> and hstack((a,b)) and hstack((c,d)) must have the same number of >>>> columns. >>>> >>>> Thus it requires a regularity like this: >>>> >>>> AAAABB >>>> AAAABB >>>> CCCDDD >>>> CCCDDD >>>> CCCDDD >>>> CCCDDD >>>> >>>> What if we just ignore this constraint, and only require the output to >>>> be >>>> rectangular? Now we have a 'tetris game': >>>> >>>> AAAABB >>>> AAAABB >>>> CCCCBB >>>> CCCCBB >>>> CCCCDD >>>> CCCCDD >>>> >>>> or >>>> >>>> AAAABB >>>> AAAABB >>>> CCCCBB >>>> CCCCBB >>>> CCCCBB >>>> CCCCBB >>>> >>>> This should be 'stackable', yes? Or perhaps we need another stacking >>>> function for this, say numpy.tetris? >>>> >>>> And while we're at it, what about higher dimensions? should there be an >>>> ndstack function too? >>>> >>> >>> This is starting to look like the second time in a row Stefan tries to >>> extend numpy with a simple convenience function, and he gets tricked into >>> implementing some sophisticated algorithm... >>> >>> For his next PR I expect nothing less than an NP-complete problem. ;-) >>> >>> >>>> Jaime >>> >>> -- >>> (\__/) >>> ( O.o) >>> ( > <) Este es Conejo. Copia a Conejo en tu firma y ayúdale en sus >>> planes de dominación mundial. >>> >>> _______________________________________________ >>> NumPy-Discussion mailing list >>> NumPy-Discussion@scipy.org >>> http://mail.scipy.org/mailman/listinfo/numpy-discussion >>> >>> >> >> _______________________________________________ >> NumPy-Discussion mailing list >> NumPy-Discussion@scipy.org >> http://mail.scipy.org/mailman/listinfo/numpy-discussion >> >> > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion > >
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion