Sven Schreiber schrieb: > Hi, > notice the (confusing, imho) different defaults for the axis of the > following related functions: > > nansum(a, axis=-1) > Sum the array over the given axis, treating NaNs as 0. > > sum(x, axis=None, dtype=None) > Sum the array over the given axis. The optional dtype argument > is the data type for intermediate calculations. > > > average(a, axis=0, weights=None, returned=False) > average(a, axis=0, weights=None, returned=False) > > Average the array over the given axis. If the axis is None, average > over all dimensions of the array. Equivalent to a.mean(axis), but > with a default axis of 0 instead of None. > >>>> numpy.__version__ > '1.0b2.dev2973' > > Shouldn't those kind of functions have the same default behavior? So is > this a bug or am I missing something? > > Thanks for enlightenment, > Sven >
Perhaps this is useful for others, so I'll share my self-enlightenment (please correct me if I got it wrong): - sum's axis=None default actually conforms to what's in the numpy 1.0 release notes (functions that match methods should also get their default, which for such methods is axis=None) - nansum's axis=-1 default is normal for functions which don't match equivalent methods - However, I still don't understand why then average() doesn't have axis=-1 as its default like other functions...? Apparently the axis=0 default of average() is its main feature, explaining its existence vis-à-vis .mean. But that seems inconsistent to me, as it breaks all the rules: It doesn't conform to the standard axis=-1 default for functions, and if it's viewed as equivalent to the .mean method (which it is), it doesn't conform to the rule that it should share the latter's default axis=None. So imho it seems like there's no real use for average() other than creating confusion. (Well that sounds a bit too strong, but anyway...) I therefore suggest to officially deprecate it and move it to some compatibility module. I'm going to file a corresponding ticket tomorrow unless somebody tells me not to. Cheers, Sven ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Numpy-discussion mailing list Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion