[Numpy-discussion] record array with array elements

Robert Kern robert.kern@gmail....
Tue Jan 6 15:41:49 CST 2009

On Tue, Jan 6, 2009 at 14:07, Igor Sylvester <igorsyl@gmail.com> wrote:
> Everyone,
> Shouldn't the itemsize below be 2?
>>>> import numpy as np
>>>> dtype = np.dtype( [ (((2,), 'top'), [('nested', 'i1')]) ] )
>>>> dtype.itemsize
> 1
>>>> np.__version__
> '1.0.4'
> The elements of the dtype are of type array of size 2.  Each element is a
> (nested) record array of size 2 with one field of type 'i1'.  In contiguous
> memory, this should look identical to an 'i1' array of size 2.

That's not a valid dtype. Array fields should be of the form (name,
subdtype, shape), not ((shape, name), subdtype). I'm not sure why
dtype() does not simply reject this input.

In [22]: np.dtype([('top', [('nested', 'i1')], (2,))]).itemsize
Out[22]: 2

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

More information about the Numpy-discussion mailing list