[Numpy-discussion] one-offset arrays

Konrad Hinsen hinsen at cnrs-orleans.fr
Wed Aug 29 06:06:25 EDT 2001


> This led me to some thinking about why UserArrays are not more often used.
> 
> I think one of the biggest reasons is that most of the functions can
> take UserArrays but returned the basic array type upon completion.
> So, you end up having to continually construct your UserArrays.

Exactly.

> Are there other reasons people have thought of?

Performance, in some cases. Or passing objects to C routines that expect
plain arrays. But the function issue is certainly the major one.

> So, here's a suggestion:
> 
> Why don't we modify PyArray_Return to return an object of the same class as 
> one of the arguments which was passed if the class defines an __array__ 
> method. 

I don't think it can be done at the level of PyArray_Return, it cannot
know what the classes of the arguments were. We *could* achieve the
same goal by making appropriate modifications to all the C functions
in Numeric.

> Which argument to pick and how this would be implemented without
> changing old code is an interesting question.

No idea about the first issue, but compatibility can be assured (well,
in most cases) by picking some attribute name (__array__) that is not
used in the current UserArray class. We'd then have some other class
derived from UserArray which sets that attribute.

Konrad.
-- 
-------------------------------------------------------------------------------
Konrad Hinsen                            | E-Mail: hinsen at cnrs-orleans.fr
Centre de Biophysique Moleculaire (CNRS) | Tel.: +33-2.38.25.56.24
Rue Charles Sadron                       | Fax:  +33-2.38.63.15.17
45071 Orleans Cedex 2                    | Deutsch/Esperanto/English/
France                                   | Nederlands/Francais
-------------------------------------------------------------------------------




More information about the NumPy-Discussion mailing list