Я думаю, что это своего рода новый вопрос, где у нас не было решения. Мне нужно реализовать какое-то удушение для очень больших значений в списке чисел. Например
list = np.array([3, 3, 3, 15, 3, 3, 3])
Я сделал очень простую реализацию с удушением таких значений. Что я пробовал до сих пор.
def smooth(x, window, threshold):
for idx, val in enumerate(x):
if idx < window:
continue
avr = np.mean(
x[idx-window:idx])
if abs(avr - val) > threshold:
x[idx] = avr + threshold
print(smooth(list1, 3, 1))
# [3, 3, 3, 4, 3, 3, 3]
В этом случае все работает хорошо, но на другом примере мне нужно сгладить данные другим способом (сглаживание по Гауссу для ex).
list = np.array([3, 3, 3, 15, 15, 15])
print(smooth(list, 3, 1))
# [3, 3, 3, 4, 4, 3]
Поскольку window
движется слева направо, я не знаю norm
следующего значения. Конечно, я могу оценить окно для этих чисел в обоих направлениях, но просто задаюсь вопросом о правильных способах сделать это или общей технике.