[Numpy-discussion] using reducing functions without eliminating dimensions?

Charles R Harris charlesr.harris at gmail.com
Thu Apr 9 02:02:51 EDT 2009


On Tue, Apr 7, 2009 at 12:44 PM, Dan Lenski <dlenski at gmail.com> wrote:

> Hi all,
>
> I often want to use some kind of dimension-reducing function (like min(),
> max(), sum(), mean()) on an array without actually removing the last
> dimension, so that I can then do operations broadcasting the reduced
> array back to the size of the full array.  Full example:
>
>  >> table.shape
>  (47, 1814)
>
>  >> table.min(axis=1).shape
>  (47,)
>
>  >> table - table.min(axis=1)
>  ValueError: shape mismatch: objects cannot be broadcast to a single
> shape
>
>  >> table - table.min(axis=1)[:, newaxis]
>
> I have to resort to ugly code with lots of stuff like "... axis=1)[:,
> newaxis]".
>
> Is there any way to get the reducing functions to leave a size-1 dummy
> dimension in place, to make this easier?
>

Not at the moment. There was talk a while back of adding a keyword for this
option, it would certainly make things easier for some common uses. It might
be worth starting that conversation up again.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20090409/08d8e01a/attachment.html>


More information about the NumPy-Discussion mailing list