numpy.frombuffer != unpack() ??
Robert Kern
robert.kern at gmail.com
Fri May 16 18:25:00 EDT 2008
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
More information about the Python-list
mailing list