Удалить точки данных ниже кривой с помощью python

Мне нужно сравнить некоторые теоретические данные с реальными данные в python. Теоретические данные получаются из решения уравнения. Чтобы улучшить сравнение, я хотел бы удалить точки данных, которые сильно отклоняются от теоретической кривой. Я имею в виду, я хочу удалить точки под и над красными пунктирными линиями на рисунке (сделанном с помощью matplotlib). Data points and theoretical curves

И теоретические кривые, и точки данных представляют собой массивы разной длины.

Я могу попытаться удалить точки примерно на глаз, например: первая верхняя точка может быть обнаружена с помощью:

data2[(data2.redshift<0.4)&data2.dmodulus>1]
rec.array([('1997o', 0.374, 1.0203223485103787, 0.44354759972859786)], dtype=[('SN_name', '|S10'), ('redshift', '<f8'), ('dmodulus', '<f8'), ('dmodulus_error', '<f8')])    

Но я бы хотел использовать менее грубый способ.

Итак, может ли кто-нибудь помочь мне найти простой способ устранения проблемных точек?

Спасибо!

6
задан Illa Rivero Losada 31 October 2011 в 19:52
поделиться