[Numpy-discussion] Re: byteswap questions

Russell E. Owen rowen at cesmail.net
Wed Nov 2 14:53:09 CST 2005


In article <1130838789.2968.23.camel at localhost.localdomain>,
 Francesc Altet <faltet at carabos.com> wrote:

> El dl 31 de 10 del 2005 a les 16:53 -0800, en/na Russell E. Owen va
> escriure:
> > I've got a module that can send array data to ds9. It screws up on 
> > byteswapped data and I'm trying to fix it.
> 
> I don't exactly know what a ds9 is, but I'm supposing here that it is
> kind of an exotic computer.

It's an image display program.

> > I need to know if the order is bigendian or littleendian, and I can't 
> > find a documented way to get that, just an undocumented attribute 
> >  byteorder.
> 
> Yes, it's undocumented, but as far as I can tell, this works flawlessly
> in numarray.

I'm sure it works now. I was hoping to know if it would continue working 
in future versions. It'd be nice to have a documented way to get at the 
info.

>...
> In general, copy() will return you a well-behaved (native-byte ordered,
> non-strided and non-offsetted) array.

The manual promises that a copy will be contiguous but I didn't see a 
promise of native byte order. I have submitted a documentation PR on 
sourceforge.

...
Thanks for the explanation of what byteswapped was doing. That was very 
helpful.

To use documented interfaces (i.e. not arra._byteorder) and to avoid 
byteswapping the input array, I think I'm going to be stuck doing 
something like:

import sys
if sys.byteorder == 'big':
   isBigendian = not arr.isbyteswapped()
else:
   isBigendian = arr.isbyteswapped()

I also submitted a request for a documented direct way to get the info 
on sourceforge.

Regards,

-- Russell





More information about the Numpy-discussion mailing list