Предположим, у меня есть некоторые циклические данные [min> = 0, max <360], </p>
data = np.array([355.9, 2.47 , 30.52, 5.33, 40.22, 340.22])
Круговое среднее этих данных 9
Я хочу выбратьданные вокруг среднего на +- 15
градусов.Поэтому выбранные данные будут new_data = [355.9, 2.47 , 5.33]
.Выбранные данные попадают в диапазон между [low=9-15, high=9+15] = [354, 24]
То, что я пробовал, это
def remove_outliers(angles, mean, extend):
high = (mean + extend) - 360 if (mean + extend)>360 else (mean + extend)
low = (mean - extend) + 360 if (mean - extend)<0 else (mean - extend)
angles = angles[angles>=low]
angles = angles[angles<=high]
return angles
high = 24
и low = 354
, но следующая часть неверна
angles = angles[angles>=low] # this is wrong
angles = angles[angles<=high] # this is wrong
remove_outliers(data, 9, 15) # gives empty array
Функция будет работать, если среднее значение выше 15
или ниже 345
для extend = 15
.