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

Dan Lenski dlenski at gmail.com
Tue Apr 7 14:44:58 EDT 2009


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?

Thanks!

Dan




More information about the NumPy-Discussion mailing list