[Numpy-discussion] Using numpy.fromfile with structured array skipping some elements.

Michael Klitgaard michael@klitgaard...
Thu Jun 16 08:02:13 CDT 2011


I hope this is the right mailings list for a numpy user questions, if
not, I'm sorry.

Im reading a binary file with numpy.fromfile()

The binary file is constructed with some integers for checking the
data for corruption.
This is how the binary file is constructed:

Timestamp       [ 12 bytes]
[ 1 int ]       check
[ 1 single ]    Time stamp (single precision).
[ 1 int ]       check

Data chunk      [ 4*(no_sensor+2) bytes ]
[ 1 int ]       check
[ no_sensor single ]    Array of sensor readings (single precision).
[ 1 int ]       check

The file continues this way
[ Timestamp ]
[ Data chunk ]
[ Timestamp ]
[ Data chunk ]

no_sensor is file dependend
int = 4 bytes
single = 4 bytes

This is my current procedure
f = open(file,'rb')
f.read(size_of_header)  # The file contains a header, where fx. the
no_sensor can be read.

dt = np.dtype([('junk0', 'i4'),
              ('timestamp', 'f4'),
              ('junk1', 'i4'),
              ('junk2', 'i4'),
              ('sensors', ('f4',no_sensor)),
              ('junk3', 'i4')])

data = np.fromfile(f, dtype=dt)

Now the data is read in and I can access it, but I have the 'junk' in
the array, which annoys me.
Is there a way to remove the junk data, or skip it with fromfile ?

Another issue is that when accessing one sensor, I do it this way:

for the first sensor, would it be possible to just do:
data['sensors'][0] ?

Thank you!

Michael Klitgaard

More information about the NumPy-Discussion mailing list