[Numpy-discussion] Operation over multiple axes? (Or: Partial flattening?)

Robert Kern robert.kern at gmail.com
Tue Jul 29 15:08:49 EDT 2008


On Tue, Jul 29, 2008 at 09:24, Hans Meine
<meine at informatik.uni-hamburg.de> wrote:
> On Dienstag 29 Juli 2008, Stéfan van der Walt wrote:
>> > One way to achieve this is partial flattening, which I did like this:
>> >
>> >  dat.reshape((numpy.prod(dat.shape[:3]), dat.shape[3])).sum(0)
>> >
>> > Is there a more elegant way to do this?
>>
>> That looks like a good way to do it.  You can clean it up ever so slightly:
>>
>> x.reshape([-1, x.shape[-1]]).sum(axis=0)
>
> Thanks, that looks more elegant indeed.  I am not sure if I've read about -1
> in shapes before.  I assume it represents "the automatically determined rest"
> and may only appear once?  Should this be documented in the reshape
> docstring?

Yes, yes, and yes.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
 -- Umberto Eco


More information about the NumPy-Discussion mailing list