On Fri, Feb 6, 2009 at 4:22 AM, Stéfan van der Walt <[email protected]>wrote:
> Hi Robert > > 2009/2/6 Robert Kern <[email protected]>: > >> This could be implemented but would require adding information to the > >> NumPy array. > > > > More than that, though. Every function and method that takes an axis > > or reduces an axis will need to be rewritten. For that reason, I'm -1 > > on the proposal. > > Are you -1 on the array dictionary, or on using it to do axis mapping? > I would imagine that Gael would be happier even if he had to do > > axis = x.meta.axis['Lateral'] > some_func(x, axis) > > > I'm of the opinion that it should never guess. We have no idea what > > semantics are being placed on the dict. Even in the case where all of > > the inputs have the same dict, the operation may easily invalidate the > > metadata. For example, a reduction on one of these axis-decorated > > arrays would make the axis labels incorrect. > > That's a good point. So what would be a sane way of propagating > meta-data? If we don't want to make any assumptions, it becomes the > user's responsibility to do it manually. > In which case they end up writing a subclass to propagate only that portion of the dict that they were using. I'll add another example where a subclass would be needed to propagate the metadata: physical quantities. I have a package (nearly ready to submit to this list for request for comment) that uses a dict subclass to describe the dimensionality of a quantity, like {m:1, s:-1}. I don't think this metadata dictionary would be useful for quantities since two arrays may have the same dimensionality but the propagated dimensionality would be {m:1, s:-1} for addition, {m:2, s:-2} for multiplication, {} for division. Darren
_______________________________________________ Numpy-discussion mailing list [email protected] http://projects.scipy.org/mailman/listinfo/numpy-discussion
