0
私はデータ型の配列を含む読んでいるバイナリファイルがあります:私は使用してdt_particles
要素の配列全体を読むことができます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)])
を:
numpy.rec.fromfile(FILE_OBJ, dtype=dt_particles, shape=NUM_ELEMENTS)
私だけid
を読むにはどうすればよいですフィールドをバイナリファイルから削除し、他のフィールドをスキップしますか?
私の唯一の懸念は、大きなデータファイルを使用していることでした。私はできるだけ多くの不要な処理をスキップしたいと思っていました。 numpyがファイル全体をとにかく読み取ると、違いはほとんどありません。 – hazrmard
'read 8 bytes'、' seek forward 24'をファイルの最後まで繰り返すと、1028バイトのチャンク(またはそれ以上)のファイルを読み込んで処理するよりもずっと遅くなります。アイテムの数を制限すると、ファイル全体を読み取る必要はありません。いずれか1つのフィールドがファイルに配布されます。 – hpaulj