[Numpy-discussion] recarray fun

Travis E. Oliphant oliphant at enthought.com
Wed Apr 30 14:58:18 EDT 2008


Christopher Barker wrote:
> Hi folks,
>
> Someone on the wxPython list posted a nifty recarray example that I 
> don't quite understand. The idea is to have an array for an RGBA image:
>
> rgbarec = numpy.dtype({'r':(numpy.uint8,0),
>                         'g':(numpy.uint8,1),
>                         'b':(numpy.uint8,2),
>                         'a':(numpy.uint8,3)})
>
> A = numpy.zeros(shape, dtype=(numpy.uint32, rgbarec) )
>
> what I don't understand is having BOTH numpy.uint32 and rgbrec as the 
> dtype. How does that work?
>   

Basically, the rgbarec defines the fields, but the "base-type" for the 
numpy array is numpy.uint32 (rather than VOID which is the default 
data-type for arrays with fields defined).   This is why it prints the 
way it does. 

I'm not sure what the real value is doing it that way as opposed to just 
having two views on the data:  one as a uint32 and another as a "normal" 
recarray with a VOID data-type underlying it) like you suggest at the end.

I think it's really just the "architecture" showing through to the user 
layer.  

-Travis






More information about the NumPy-Discussion mailing list