wrote the last email before reading your a = array([1,'A', None]) comment.  I definately agree with you on that.

On 8/31/06, Tom Denniston <tom.denniston@alum.dartmouth.org> wrote:
Yes one can take a toy example and hack it to work but I don't necessarily have control over the input as to whether it is a list of object arrays, list of 1d heterogenous arrays, etc.  Before I didn't need to worry about the input because numpy understood that a list of 1d arrays is a 2d piece of data.  Now it understands this for all dtypes except object.  My question was is this new set of semantics preferable to the old.
 
I think your example kind of proves my point.  Does it really make any sense for the following two ways of specifying an array give such different results?  They strike me as _meaning_ the same thing.  Doesn't it seem inconsistent to you?
 

In [13]: array([array([1,'A', None], dtype=object),array([2,2,'Some string'],dtype=object)], dtype=object).shape
Out[13]: (2,)

and

In [14]: array([array([1,'A', None], dtype=object),array([2,2,'Some string'],dtype=object)]).shape
Out[14]: (2, 3)

So my question is what is the _advantage_ of the new semantics?  The two examples above used to give the same results.  In what cases is it preferable for them to give different results?  How does it make life simpler?
 
 
On 8/31/06, Charles R Harris <charlesr.harris@gmail.com > wrote:
On 8/31/06, Tom Denniston <tom.denniston@alum.dartmouth.org > wrote:
But i have hetergenious arrays that have numbers and strings and NoneType, etc.

Take for instance:

In [11]: numpy.array([numpy.array([1,'A', None]),
numpy.array([2,2,'Some string'])], dtype=object)
Out[11]:
array([[1, A, None],
       [2, 2, Some string]], dtype=object)

In [12]: numpy.array([ numpy.array([1,'A', None]),
numpy.array([2,2,'Some string'])], dtype=object).shape
Out[12]: (2, 3)

Works fine in Numeric and pre beta numpy but in beta numpy versions i get:

I think you want:

In [59]: a = array([array([1,'A', None],dtype=object),array([2,2,'Some string'],dtype=object)])

In [60]: a.shape
Out[60]: (2, 3)
 
 
Which makes good sense to me.

Chuck

 

 

-------------------------------------------------------------------------
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