[Numpy-discussion] how to create an array of objects that are sequences?

Travis E. Oliphant oliphant@enthought....
Fri Jan 4 12:55:56 CST 2008


Charles R Harris wrote:
>
>
> On Jan 4, 2008 11:13 AM, Pearu Peterson <pearu@cens.ioc.ee 
> <mailto:pearu@cens.ioc.ee>> wrote:
>
>     On Fri, January 4, 2008 7:33 pm, Travis E. Oliphant wrote:
>
>     > So, create an empty object array and insert the entries the way
>     you want
>     > them:
>     >
>     > a = np.empty(1,dtype=object)
>     > a[0] = A((1,2))
>
>     Actually this is still an option if to put the above
>     to a A.as_array method something like
>
>     class A(tuple):
>        def as_array(self):
>            import numpy
>            obj = numpy.empty(1,dtype=object)
>            obj[0] = self
>            return obj
>
>     but it would be nice if the __array__ method also worked.
>     Could this be something that should be put to issues or
>     would it just get a WontFix flag? 
>
>  
> IIRC the previous discussions, there simply isn't enough information 
> in the array interface to decide what needs to be done with regards to 
> object arrays. I think a general solution would require a specialized 
> creation function with more arguments, say, a depth argument which 
> would create objects at a certain depth of nesting. In your case that 
> would be at level 0(1?). I think that would solve most problems, and I 
> suppose it could be added to the current array interface with a 
> default value implying current behavior, i.e., as deep as possible.
>
I like the depth option, and that could be used with the current 
interface without too much difficulty, I think.

This question does come up quite often and should probably be addressed.

-Travis




More information about the Numpy-discussion mailing list