Используя словарь, вы можете сохранить позиционную информацию, связанную с идентификатором частицы, используя масштабирование поиска O (1) для словарей:
# What the data in a single file would look like:
data = {1:[0.5,0.1,1.], 4:[0.4,-0.2,0.1], ...}
# A lookup becomes very simple syntactically:
for ID in chosen_id_arr:
x, y, z = data[ID]
# Here you can process the obtained x,y,z.
Это намного быстрее, чем поиск numpy . Что касается обработки данных о местоположении в l oop, вы могли бы подумать о том, чтобы иметь отдельные списки позиций для различных идентификаторов частиц, но я думаю, что это не входит в рамки вопроса. Здесь также может помочь пакет pandas.