У меня есть двоичный файл, который я читаю, содержащий массив типа данных:Как читать определенные поля из двоичного файла с помощью numpy?
dt_particles = np.dtype([('id', np.int64), \
('x', np.float32), \
('y', np.float32), \
('z', np.float32), \
('vx', np.float32), \
('vy', np.float32), \
('vz', np.float32)])
Я могу читать весь массив dt_particles
элементов с помощью:
numpy.rec.fromfile(FILE_OBJ, dtype=dt_particles, shape=NUM_ELEMENTS)
Как я прочитал только id
поле из двоичного файла и пропустить другие поля?
Хорошо, мое единственное беспокойство заключалось в том, что я использую большие файлы данных, и я хотел пропустить как можно больше ненужной обработки. Если numpy все равно читает весь файл, это не имеет большого значения. – hazrmard
Выполнение 'read 8 bytes',' seek forward 24', повторяется до конца файла, будет намного медленнее, чем читать файл в 1028 байтовых фрагментах (или больше) и обрабатывать их. Если вы ограничиваете количество элементов, тогда вам не нужно читать весь файл; но любое поле распространяется через файл. – hpaulj