Cela dépend comment vous définissez le « bruit » et comment il est causé. Puisque vous n'avez pas fourni beaucoup d'informations sur votre cas, je vais prendre votre question comme "comment rendre la courbe lisse". filtre de Kalman peut le faire, mais il est trop complexe, je préfère simple filtre IIR
import matplotlib.pyplot as plt
mu, sigma = 0, 500
x = np.arange(1, 100, 0.1) # x axis
z = np.random.normal(mu, sigma, len(x)) # noise
y = x ** 2 + z # data
plt.plot(x, y, linewidth=2, linestyle="-", c="b") # it include some noise
Après filtre
from scipy.signal import lfilter
n = 15 # the larger n is, the smoother curve will be
b = [1.0/n] * n
a = 1
yy = lfilter(b,a,y)
plt.plot(x, yy, linewidth=2, linestyle="-", c="b") # smooth by filter
lfilter
est une fonction de scipy.signal . Par ailleurs, si vous voulez utiliser le filtre de Kalman pour lisser, scipy fournit également un example. Kalman filtre devrait également fonctionner sur ce cas, mais pas si nécessaire.
Le filtre IIR a réduit le bruit. Merci pour cela et le lien vers le filtre kalman. – PiccolMan