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 behavior changed recently (it used to work with r2788), and I realize 
it's probably part of all the reworkings of the object arrays which have been 
discussed on the list, and all of whose details I have to admit I haven't 
followed.  But this behavior strikes me as a bit inconsistent, since 
concatenation with a non-empty object array works fine:

In [26]: numpy.concatenate(([None],b))
Out[26]: array([None, None, None], dtype=object)

This is biting us in some code which keeps object arrays, because when 
operations of the kind

N.concatenate((some_list_of_objects[:nn],other_object_array))

are taken and nn happens to be 0, the code just explodes.  In our case, the 
variable nn is a runtime computed quantity that comes from a numerical 
algorithm, for which 0 is a perfectly reasonable value.

Are we just misusing things and is there a reasonable alternative, or should 
this be considered a numpy bug?  The r2788 behavior was certainly a lot less 
surprising as far as our code was concerned.

I realize that one alternative is to wrap everything into arrays:

N.concatenate((N.asarray(some_list_of_objects[:nn]),other_object_array))

Is this the only solution moving forward, or could the previous behavior be 
restored without breaking other areas of the new code/design?

Thanks for any input,

f

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/numpy-discussion

Reply via email to