Я пытаюсь сгладить этот набор данных и создать единую репрезентативную кривую с ошибками. Метод получения точек данных был дискретизирован с довольно грубым шагом. У меня мало опыта программирования, но я стараюсь учиться. Я читал, что фильтр Гаусса может быть хорошим вариантом. Любая помощь будет оценена по достоинству. Сглаживание дискретного набора данных
Вот набор примеров данных:
Time (min) Non-Normalized Shrinkage Normalized Shrinkage
200 93 1.021978022
202 92 1.010989011
204 92 1.010989011
206 92 1.010989011
208 92 1.010989011
210 92 1.010989011
212 91 1
214 90 0.989010989
216 90 0.989010989
218 90 0.989010989
220 88 0.967032967
222 88 0.967032967
224 87 0.956043956
226 86 0.945054945
228 86 0.945054945
230 86 0.945054945
232 86 0.945054945
234 86 0.945054945
236 85 0.934065934
238 84 0.923076923
240 83 0.912087912
242 83 0.912087912
244 83 0.912087912
246 82 0.901098901
248 83 0.912087912
250 82 0.901098901
252 81 0.89010989
254 81 0.89010989
256 82 0.901098901
258 82 0.901098901
260 79 0.868131868
262 80 0.879120879
264 80 0.879120879
Я нашел этот фрагмент кода на сайте где-то, но я не знаю, как реализовать его или это даже то, что я ищу.
def smoothListGaussian(list,degree=5):
window=degree*2-1
weight=numpy.array([1.0]*window)
weightGauss=[]
for i in range(window):
i=i-degree+1
frac=i/float(window)
gauss=1/(numpy.exp((4*(frac))**2))
weightGauss.append(gauss)
weight=numpy.array(weightGauss)*weight
smoothed=[0.0]*(len(list)-window)
for i in range(len(smoothed)):
smoothed[i]=sum(numpy.array(list[i:i+window])*weight)/sum(weight)
return smoothed
Можете ли вы предоставить код, который у вас есть до сих пор? И пример набора данных? – Ffisegydd
У меня до сих пор нет кода. Я нашел этот кусок, который я вставил выше, но я не знаю, как его реализовать. Извините, что я такой noob. – SeattleFreezer