[Numpy-discussion] Problem with concatenate and object arrays

Travis Oliphant oliphant.travis at ieee.org
Mon Sep 4 17:34:08 CDT 2006


Fernando Perez wrote:
> Hi all,
>
> I'm wondering if the following difference in behavior of object arrays should 
> be considered a bug.  Let a and b be:
>
> In [21]: a = [0,1]
>
> In [22]: b = [ None, None]
>
> If we concatenate a with an empty list, it works:
>
> In [23]: numpy.concatenate(([],a))
> Out[23]: array([0, 1])
>
> But not so for b:
>
> In [24]: numpy.concatenate(([],b))
> ---------------------------------------------------------------------------
> exceptions.ValueError                                Traceback (most recent 
> call last)
>
> /home/fperez/<ipython console>
>
> ValueError: 0-d arrays can't be concatenated
>   

This is a result of PyArray_FromAny changing when object arrays are 
explicitly requested (which they are in this case --- although behind 
the scenes). 

I decided to revert to the previous behavior and only use the 
Object_FromNestedLists code when an error occurs and the user explicitly 
requested an object array.  

The downside is that you can not place empty lists (or tuples) as 
objects in an object-array construct.  as you could before.   Given the 
trouble people had with the "feature,"  it seems wise to use it only 
when previous code would have raised an error.

-Travis





More information about the Numpy-discussion mailing list