From: Robert K. <rob...@gm...> - 2006-10-19 16:40:04
|
David Huard wrote: > Hi, > > Is there an elegant way to reduce an array but conserve the reduced > dimension ? > > Currently, > >>> a = random.random((10,10,10)) > >>> a.sum(1).shape > (10,10) > > but i'd like to keep (10,1,10) so I can do a/a.sum(1) directly. def nonreducing_reducer(reducing_func, arr, axis): reduced = reducing_func(arr, axis=axis) shape = list(reduced.shape) axis = axis % len(arr.shape) shape.insert(axis, 1) reduced.shape = tuple(shape) return reduced I think. -- 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 |