[Numpy-discussion] Generalize hstack/vstack --> stack; Block matrices like in matlab

Benjamin Root ben.root at ou.edu
Mon Sep 8 13:00:11 EDT 2014


Btw, on a somewhat related note, whoever can implement ndarray to be able
to use views from other ndarrays stitched together would get a fruit basket
from me come the holidays and possibly naming rights for the next kid...

Cheers!
Ben Root

On Mon, Sep 8, 2014 at 12:55 PM, Benjamin Root <ben.root at 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.eelco at 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.frio at gmail.com> wrote:
>>
>>> On Mon, Sep 8, 2014 at 7:41 AM, Sturla Molden <sturla.molden at gmail.com>
>>> wrote:
>>>
>>>> Stefan Otte <stefan.otte at 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 at scipy.org
>>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>>
>>>
>>
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion at scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20140908/1dbf94b0/attachment.html>


More information about the NumPy-Discussion mailing list