This sort of thing can be handled much more efficiently using numpy.fromfile.  You can combine the previous 5 read operations into a single read, then tuple unpack to the relevant attributes.