Hi Vincent 2008/5/20 Vincent Schut <[EMAIL PROTECTED]>: > Hi, I'm trying to get into recarrays. Unfortunately documentation is a > bit on the short side... > > Lets say I have a rgb image of arbitrary size, as a normal ndarray > (that's what my image reading lib gives me). Thus shape is > (3,ysize,xsize), dtype = int8. How would I convert/view this as a > recarray of shape (ysize, xsize) with the first dimension split up into > 'r', 'g', 'b' fields? No need for 'x' and 'y' fields.
First, you need to flatten the array so you have one (r,g,b) element per row. Say you have x with shape (3, 4, 4): x = x.T.reshape((-1,3)) Then you can view it with your new dtype: dt = np.dtype([('r',np.int8),('g',np.int8),('b',np.int8)]) x = x.view(dt) Then you must reshape it back to your original pixel arrangement: x = x.reshape((4,4)).T Or you can do it all in one go: x.T.reshape((-1,x.shape[0])).view(dt).reshape(x.shape[1:]).T Maybe someone else comes up with an easier way. Cheers Stéfan _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion