[Numpy-discussion] dtype.type for structured arrays
Travis Oliphant
oliphant at enthought.com
Fri Aug 6 20:07:21 EDT 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.
-Travis
> Thanks,
>
> Thomas
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
---
Travis Oliphant
Enthought, Inc.
oliphant at enthought.com
1-512-536-1057
http://www.enthought.com
More information about the NumPy-Discussion
mailing list