------------------------------------------------------------------------
> Date: Fri, 16 May 2008 17:08:20 -0700
> From: [EMAIL PROTECTED]
> To: [EMAIL PROTECTED]; python-list@python.org
> Subject: Re: numpy.frombuffer != unpack() ??
>
> Marlin Rowley wrote:
> > All:
> >
> > Say I have an array:
> >
> > a = (['rrrrggggbbbbaaaa'],['rrrrggggbbbbaaaa'])
> >
> > How do I make it so that I now have:
> >
> > starting with first element (a[0])
> > new_arr[0] = 'r'
> > new_arr[1] = 'g'
> > new_arr[2] = 'b'
> > new_arr[3] = 'a'
> > new_arr[4] = 'r'
> > .....
> >
> > continuing "through" a[1] with the same new_arr
> > new_arr[N] = 'r'
> > new_arr[N+1] = 'g'
> > ....
> >
> > -M
>
> Numpy can do this for you. First, do you really mean the array to
> contain lists of one string each? If so:
>
> >>> import numpy
> >>> a = (['rrrrggggbbbbaaaa'],['rrrrggggbbbbaaaa'])
> >>> b = numpy.frombuffer(''.join(sum(a,[])),dtype='S1') # Kind of a
> kludge here
> >>> b
> array(['r', 'r', 'r', 'r', 'g', 'g', 'g', 'g', 'b', 'b', 'b', 'b', 'a',
> 'a', 'a', 'a', 'r', 'r', 'r', 'r', 'g', 'g', 'g', 'g', 'b', 'b',
> 'b', 'b', 'a', 'a', 'a', 'a'],
> dtype='|S1')
> >>> b.shape=(2,4,4)
> >>> b
> array([[['r', 'r', 'r', 'r'],
> ['g', 'g', 'g', 'g'],
> ['b', 'b', 'b', 'b'],
> ['a', 'a', 'a', 'a']],
>
> [['r', 'r', 'r', 'r'],
> ['g', 'g', 'g', 'g'],
> ['b', 'b', 'b', 'b'],
> ['a', 'a', 'a', 'a']]],
> dtype='|S1')
> >>> c = b.transpose((2,0,1))
> >>> c
> array([[['r', 'g', 'b', 'a'],
> ['r', 'g', 'b', 'a']],
>
> [['r', 'g', 'b', 'a'],
> ['r', 'g', 'b', 'a']],
>
> [['r', 'g', 'b', 'a'],
> ['r', 'g', 'b', 'a']],
>
> [['r', 'g', 'b', 'a'],
> ['r', 'g', 'b', 'a']]],
> dtype='|S1')
> >>> d=c.copy() # To make it contiguous
> >>> d.shape = (32,)
> >>> d
> array(['r', 'g', 'b', 'a', 'r', 'g', 'b', 'a', 'r', 'g', 'b', 'a', 'r',
> 'g', 'b', 'a', 'r', 'g', 'b', 'a', 'r', 'g', 'b', 'a', 'r', 'g',
> 'b', 'a', 'r', 'g', 'b', 'a'],
> dtype='|S1')
>
> Done. Cool no?
>
> Gary Herron
>
> >
> >
> >
> >
> >
------------------------------------------------------------------------
> > From: [EMAIL PROTECTED]
> > To: [EMAIL PROTECTED]; python-list@python.org
> > Subject: RE: numpy.frombuffer != unpack() ??
> > Date: Fri, 16 May 2008 17:31:30 -0500
> >
> > Thank you! That solved it!
> >
> > -M
> >
> >
> >
------------------------------------------------------------------------
> >
> > > To: python-list@python.org
> > > From: [EMAIL PROTECTED]
> > > Subject: Re: numpy.frombuffer != unpack() ??
> > > Date: Fri, 16 May 2008 17:25:00 -0500
> > >
> > > Marlin Rowley wrote:
> > > > All:
> > > >
> > > > I'm getting different floating point values when I use numpy
> > vs. unpack().
> > > >
> > > > frgba = numpy.frombuffer(<string of bytes>, dtype=float32)
> > > > buffer = unpack("!f", byte)
> > > >
> > > > frgba[0] != buffer[0]
> > > >
> > > > why? This is forcing me use the unpack() function since it's
> > giving me
> > > > the correct values. What am I doing wrong?
> > >
> > > Endianness, perhaps? '!' specifies big-endian data (an alias for
> > '>'). Most
> > > likely, you are on a little-endian platform. All of the dtypes
> > in numpy default
> > > to the native-endianness unless specified. If you want to read
> > big-endian data
> > > using numpy, do this:
> > >
> > > frgba = numpy.frombuffer(<string of bytes>, dtype='>f')
> > >
> > > If you have any more problems with numpy, please join us on the
> > numpy mailing
> > > list. When reporting problems, please try to provide a small but
> > complete
> > > snippet of self-contained code, the output that you got, and
> > explain the output
> > > that you expected to get. Thank you.
> > >
> > > http://www.scipy.org/Mailing_Lists
> > >
> > > --
> > > 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
> > >
> > > --
> > > http://mail.python.org/mailman/listinfo/python-list
> >
> >
> >
------------------------------------------------------------------------
> > E-mail for the greater good. Join the i’m Initiative from
> > Microsoft.
> >
<http://im.live.com/Messenger/IM/Join/Default.aspx?source=EML_WL_%20GreaterGood>
> >
> >
> >
> >
------------------------------------------------------------------------
> > E-mail for the greater good. Join the i’m Initiative from Microsoft.
> >
<http://im.live.com/Messenger/IM/Join/Default.aspx?source=EML_WL_%20GreaterGood>
> >
> >
------------------------------------------------------------------------
> >
> > --
> > http://mail.python.org/mailman/listinfo/python-list
>
------------------------------------------------------------------------
Keep your kids safer online with Windows Live Family Safety. Help
protect your kids.
<http://www.windowslive.com/family_safety/overview.html?ocid=TXT_TAGLM_WL_Refresh_family_safety_052008>
------------------------------------------------------------------------
--
http://mail.python.org/mailman/listinfo/python-list