[Numpy-discussion] dtype.type for structured arrays

Travis Oliphant oliphant@enthought....
Fri Aug 6 19:07:21 CDT 2010

On Jul 24, 2010, at 2:42 PM, Thomas Robitaille wrote:

> Hi,
> If I create a structured array with vector columns:
>>>> array = np.array(zip([[1,2],[1,2],[1,3]]),dtype=[('a',float,2)])
> then examine the type of the column, I get:
>>>> array.dtype[0]
> dtype(('float64',(2,)))
> Then, if I try and view the numerical type, I see:
>>>> array.dtype[0].type
> <type 'numpy.void'>
> I have to basically do
>>>> array.dtype[0].subdtype[0]
> dtype('float64')
> to get what I need. I seem to remember that this used not to be the case, and that even for vector columns, one could access array.dtype[0].type to get the numerical type. Is this a bug, or deliberate?

This looks the same as I remember it.   The dtype is a structured array with the filed name 'a' having an element which is a vector of floats.   As a result, the first dtype[0] extracts the vector of floats dtype.   This must be type "void" because it is a vector of floats.  To get to the underlying type, you have to do what you did.  I don't see how it would have worked another way in the past. 


> Thanks,
> Thomas
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion

Travis Oliphant
Enthought, Inc.

More information about the NumPy-Discussion mailing list