# [Numpy-discussion] list dtype?

David Goldsmith d_l_goldsmith@yahoo....
Sun Jul 19 18:05:47 CDT 2009

99 times out of 100, the way to do things in Numpy (as in Python) is simpler than what you thought - that's why we love 'em. ;-)

DG

--- On Sun, 7/19/09, Mark Wendell <mark.wendell@gmail.com> wrote:

> From: Mark Wendell <mark.wendell@gmail.com>
> Subject: Re: [Numpy-discussion] list dtype?
> To: "Discussion of Numerical Python" <numpy-discussion@scipy.org>
> Date: Sunday, July 19, 2009, 3:59 PM
> Excellent! I guess I was
> over-thinking it.
>
> Many thanks.
> Mark
>
> On Sun, Jul 19, 2009 at 4:50 PM, David Goldsmith<d_l_goldsmith@yahoo.com>
> wrote:
> >
> > Robert'll correct me if I'm wrong, but I think what he
> meant is that all you have to do is:
> >
> > array_of_lists = numpy.empty(<shape tuple>,
> dtype=object)
> >
> > and you'll be able to fill array_of_lists with
> whatever you want:
> >
> >>>> aol = np.empty((2,2),dtype=object)
> >>>> aol[:,:] = [[[1, 2, 3], ['a','b','c']],
> [[(), (), ()], [{}, {}, {}]]]
> >>>> aol
> > array([[[1, 2, 3], ['a', 'b', 'c']],
> >       [[(), (), ()], [{}, {}, {}]]], dtype=object)
> >
> > However, you do have to specify the shape ahead of
> time:
> >
> >>>> aol = np.empty((),dtype=object)
> >>>> aol[:,:] = [list([5, 6, 7]),list(['a',
> 'b', 'c'])]
> > Traceback (most recent call last):
> >  File "<stdin>", line 1, in <module>
> > IndexError: 0-d arrays can't be indexed.
> >>>> aol.shape = (2,2)
> > Traceback (most recent call last):
> >  File "<stdin>", line 1, in <module>
> > ValueError: total size of new array must be unchanged
> >
> > (Of course, if you need to change its size and shape,
> you can always instantiate a new array, initializing the
> "old" portion of it w/ the existing array and filling in the
> rest w/ the new values.)
> >
> > DG
> >
> > --- On Sun, 7/19/09, Mark Wendell <mark.wendell@gmail.com>
> wrote:
> >
> >> From: Mark Wendell <mark.wendell@gmail.com>
> >> Subject: Re: [Numpy-discussion] list dtype?
> >> To: "Discussion of Numerical Python" <numpy-discussion@scipy.org>
> >> Date: Sunday, July 19, 2009, 3:19 PM
> >> Sorry for being a newbie about it,
> >> but could you provide an example?
> >>
> >> I was able to do this:
> >>
> >> d = np.dtype( {'names':['mylist'],
> 'formats':[np.object]})
> >> but I'm not sure if that's the correct way to
> produce a
> >> python list-type dtype.
> >>
> >> Further, how do I then define a new array with
> that as a
> >> dtype?
> >>
> >> When I do this:
> >> a = np.array( (5,5), dtype = d)
> >> I get the error:
> >> ValueError: size of tuple must match number of
> fields.
> >>
> >>
> >> Any help appreciated. Thanks!
> >> Mark
> >>
> >> On Sun, Jul 19, 2009 at 2:37 PM, Robert Kern<robert.kern@gmail.com>
> >> wrote:
> >> > On Sun, Jul 19, 2009 at 11:22, Mark
> Wendell<mark.wendell@gmail.com>
> >> wrote:
> >> >> Is it possible to create a dtype that is
> a list of
> >> arbitrary length?
> >> >
> >> > Use the object dtype.
> >> >
> >> > --
> >> > Robert Kern
> >> >
> >> > "I have come to believe that the whole world
> is an
> >> enigma, a harmless
> >> > enigma that is made terrible by our own mad
> attempt to
> >> interpret it as
> >> > though it had an underlying truth."
> >> >  -- Umberto Eco
> >> >
> _______________________________________________
> >> > NumPy-Discussion mailing list
> >> > NumPy-Discussion@scipy.org
> >> > http://mail.scipy.org/mailman/listinfo/numpy-discussion
> >> >
> >>
> >>
> >>
> >> --
> >> --
> >> Mark Wendell
> >> "I guess songs are just interesting things to do
> with the
> >> air." Tom Waits
> >> _______________________________________________
> >> NumPy-Discussion mailing list
> >> NumPy-Discussion@scipy.org
> >> http://mail.scipy.org/mailman/listinfo/numpy-discussion
> >>
> >
> >
> >
> > _______________________________________________
> > NumPy-Discussion mailing list
> > NumPy-Discussion@scipy.org
> > http://mail.scipy.org/mailman/listinfo/numpy-discussion
> >
>
>
>
> --
> --
> Mark Wendell
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>