[Numpy-discussion] dtype=object behavior change from 0.9.6 to beta 1

Charles R Harris charlesr.harris at gmail.com
Thu Aug 31 13:57:44 EDT 2006


On 8/31/06, Charles R Harris <charlesr.harris at gmail.com> wrote:
>
> On 8/31/06, Tom Denniston <tom.denniston at 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.
>

OK, I changed my mind. I think you are right and this is a bug. Using svn
revision 3098 I get

In [2]: a = array([1,'A', None])
---------------------------------------------------------------------------
exceptions.TypeError                                 Traceback (most recent
call last)

/home/charris/<ipython console>

TypeError: expected a readable buffer object

Which is different than you get with beta 1 in any case. I think array
should cast the objects in the list to the first common dtype, object in
this case. So the previous should be shorthand for:

In [3]: a = array([1,'A', None], dtype=object)

In [4]: a.shape
Out[4]: (3,)

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20060831/8a77f6c8/attachment-0001.html>


More information about the NumPy-Discussion mailing list