Мне нужно сравнить некоторые теоретические данные с реальными данные в python. Теоретические данные получаются из решения уравнения. Чтобы улучшить сравнение, я хотел бы удалить точки данных, которые сильно отклоняются от теоретической кривой. Я имею в виду, я хочу удалить точки под и над красными пунктирными линиями на рисунке (сделанном с помощью matplotlib).
И теоретические кривые, и точки данных представляют собой массивы разной длины.
Я могу попытаться удалить точки примерно на глаз, например: первая верхняя точка может быть обнаружена с помощью:
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')])
Но я бы хотел использовать менее грубый способ.
Итак, может ли кто-нибудь помочь мне найти простой способ устранения проблемных точек?
Спасибо!