On Wed, Apr 2, 2008 at 4:40 PM, Travis E. Oliphant <[EMAIL PROTECTED]> wrote:
> Charles R Harris wrote: > > Hi All, > > > > I think it would enhance broadcasting if functions like sum, mean, etc > > didn't change the number of dimensions. For example, suppose one > > wanted to subtract the mean along dimension 2 from the same axis of > > the original array, then something like > > > > In [44]: a = ones((2,3,4,5)) > > > > In [45]: a -= a.mean(2) > > > > would do the trick. Similar modifications might also suit functions of > > the argmax, argmin, argsort type and allow a common argtake function > > that would allow one to take along a specified axis, making easy > > something that is somewhat complicated at the moment. > > I generally like the idea because I've seen this pattern many times > myself and been annoyed at having to "add back" a dimension to make it > work right. > > > > The main drawback that I see is that scalars would no longer be 0D, > > but that could be special cased as scalars will broadcast correctly no > > matter the ndim. > > Robert's point about code-breakage is relevant, however. I'd like to > see some discussion on how gratuitous this actually is. What kind of > code will actually break? Sure, the shape will be different, but will > that matter greatly? > It would break all my current code where I add the missing axis back in. Apart from that and the scalar case I don't think it would make much difference. Chuck
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion