If array fields should be of the form (name,subdtype, shape), how do I specify field offsets? My datatype is word-aligned.

Thanks.

On Tue, Jan 6, 2009 at 3:41 PM, Robert Kern <robert.kern@gmail.com> wrote:
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
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion