David Cournapeau wrote:
>> However, is there a more direct way of directly transforming bytes
>> into a np.int32 type without the intermediate 'struct.unpack' step?
> 
> Assuming you have an array of bytes, you could just use view:
> 
> # x is an array of bytes, whose length is a multiple of 4
> x.view(np.int32)

and if you don't have an array, you can use one of:

np.fromstring
np.frombuffer
np.fromfile

they all take a dtype as a parameter. For your example:

 > bytes = f.read(4)
 > i = struct.unpack('>i', bytes)[0]

i = np.fromfile(f, dtype=np.int32, count=1)

and, of course, you cold read a lot more than one number in at once.

-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

Reply via email to