Мне нужно сформировать новую последовательность чисел, заменив каждое значение данных, начиная с 4-й записи и заканчивая 4-й от последней записи, средневзвешенным значением семи точек вокруг него, используя следующую формулу:
(y[i-3] + 2y[i-2] + 3y[i-1] + 3y[i] + 3y[i+1] + 2y[i+2] + y[i+3]) // 15
(ПРИМЕЧАНИЕ. i- или i+ некоторое число является нижним индексом на случай, если это не очевидно.)
Вот код, который у меня есть, который создает необработанный график, но мне нужно сгладить новый график с помощью приведенной выше формулы. Файл данных создает массив целых чисел, настроенный как [-24, 4, -4, -12, -52...]
. Я даже не уверен, с чего начать с формулы, любая помощь будет оценена по достоинству.
from matplotlib import pyplot as plt
with open('2_Record2308.dat', 'r') as f:
data = [int(x) for x in f]
graph = data
fig, ax = plt.subplots()
ax.plot(graph)
ax.legend()
ax.set_ylabel('Raw')
plt.tight_layout()
plt.show()