On 11/4/10 5:15 AM, Olli Sipilä wrote: > I have a problem reading a binary file on OS X 10.6. On my desktop mac > (OS X 10.4.11, Python 2.5.4, Numpy 1.3.0), the command > > CELLS, NSIZE, NE = fromfile(fp, int32, 3), where fp is the filename, > > correctly prints "21 20 300". However, when I try the above on my laptop > using Snow Leopard (Python 2.6.6, Numpy 1.5.0), I get the numbers > "352321536 335544320 738263040". This results in a failure when trying > to read the data that comes afterwards (Numpy fails with "array too > big"). I assume this error may have something to do with 10.6 being > 64-bit and 10.4 being 32-bit; however, the Python 2.6.6. distribution is > also 32-bit. Any thoughts on this?
you've specified int32, so 32-64 bit should not be the issue. however, it's likely that endian issues are -- is one of your machine PPC, and one Intel? yup, that's it: In [29]: a = np.array((21, 20, 300), dtype=np.int32) In [30]: a Out[30]: array([ 21, 20, 300]) In [31]: a.byteswap() Out[31]: array([352321536, 335544320, 738263040]) So, you can either call bytswap yourself, or, better yet specify the endianness in your dtype specifier, somethign like (untested) dtype='>i4' for big endian and dtype='>i4' for little endian. Intel is little endian, PPC is bigendian (I think -- do test to make sure!) -Chris -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception chris.bar...@noaa.gov _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion