I'd like to be able to instantiate and work with objects which possess the properties of matrices, but which also carry some additional information.
Numarray provides a NumArray object which can be treated as a matrix. One way to instantiate these objects is by a call to a function array, like >>> from numarray import * >>> x=array([[1,2],[3,4]]) >>> print x [[1 2] [3 4]] >>> print x.__class__ <class 'numarray.numarraycore.NumArray'> What I'd like to do is create a subclass of NumArray; something like: >>> class MyArray(numarraycore.NumArray): ... def __init__(self,x): ... numarraycore.NumArray.__init__(self,x) ... self.myfield={} However, the function array which I used above to instantiate an NumArray object isn't at all the same as numarraycore.NumArray.__init__(). The latter takes a much more complicated set of arguments, so that: >>> y=MyArray(x) Traceback (most recent call last): File "<stdin>", line 1, in ? File "<stdin>", line 3, in __init__ ValueError: invalid shape tuple I'd *like* to use the simpler instantiation provided by array(); something like: >>> class MyArray(numarraycore.NumArray): ... def __init__(self,x): ... self=array(x) ... self.myfield={} ... But this doesn't work: >>> y=MyArray(x) >>> print y Traceback (most recent call last): File "<stdin>", line 1, in ? File "/usr/lib/python2.3/site-packages/numarray/numarraycore.py", line 711, in __str__ return array_str(self) File "/usr/lib/python2.3/site-packages/numarray/numarraycore.py", line 1357, in array_str return arrayprint.array2string( File "/usr/lib/python2.3/site-packages/numarray/arrayprint.py", line 178, in array2string x = a[()] libnumarray.error: can't get buffer size Presumably y hasn't really properly inherited all the attributes of a NumArray. What's the right way to solve this problem? For bonus points, is it possible to solve it without delving too deeply into the guts of numarray? Thanks, -Ethan -- Ethan Ligon, Assoc. Professor [EMAIL PROTECTED] Dept. of Agricultural & Resource Economics University of California http://are.berkeley.edu/~ligon Berkeley, CA 94720-3310 (510)643-5411 _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor