[Numpy-discussion] Subclassing numarray arrays

Todd Miller jmiller at stsci.edu
Thu Sep 25 12:06:02 CDT 2003


On Thu, 2003-09-25 at 12:28, Paul Dubois wrote:
> I have not followed this thread in any detail but I continue to be 
> puzzled by the idea of subclassing numarray arrays. Any subclass worth 
> its salt has an unpredictable constructor argument list, so that 
> virtually every ufunc and every array method have to be overridden in 
> order to return the subclass object rather than a numarray. 

I think there is a need to effectively subclass numarray where the
parameter lists don't change.  Doing a Matrix subclass sounds reasonable
to me and we should explore the OOP necessary to make it convenient. 
STSCI hasn't asked for it,  but a couple different numarray contributors
have.

> I gather 
> that the defers-to-me stuff allows the subclass to get control of a 
> mixed operation but that was possible with the radd, etc. operators 
> already as in the old MA.

radd does not work for numarray + MA.  Instead, the expression is
resolved as numarray.__add__(MA).  Were MA a numarray subclass, it would
work, given the facilities provided by Python alone.

The defers-to-me-stuff is a simple work around to avoid having to
reverse engineer this one Numeric behavior.

> This reasoning led me to believe that subclassing had virtually no value 
> and to the design of MA that has-a numeric array rather than is-a.

Since we want to port MA as-is to numarray, we're not changing that.

> Is there some big breakthrough here I missed?

No,  but there are two issues:  (1) effectively supporting subclasses
(2) effectively supporting interoperability with other classes.

(1) needs more discussion.
(2) is already solved.

-- 
Todd Miller 			jmiller at stsci.edu
STSCI / ESS / SSB





More information about the Numpy-discussion mailing list