У вас отличный ответ awk
.
Вот как вы можете сделать это в Python с помощью numpy.
Сначала прочитайте файлы:
import numpy as np
arrays=[]
for fn in ('file1', 'file2', 'file3'):
with open(fn) as f:
arrays.append(np.array([line.split() for line in f],dtype=float))
Затем создайте матрицу маски для фильтрации для требуемых условий:
mask=(arrays[0]>0) & (arrays[0]<100) & (arrays[1]>0) & (arrays[1]<10)
Затем умножьте третий массив (arrays[2]
это третий файл) по маске:
>>> arrays[2] * mask.astype(float)
[[0. 0. 0.]
[0. 8. 0.]
[0. 0. 0.]]