Bonjour à tous !
Je plot un nuage de point (cf figure jointe)
(sans unité pour les ordonnées et en radians pour l'axe des abscisses).
J'aimerai calculer une moyenne par tranche sur l'ensemble de ce nuage de point : avec des tranches de largeur PI/18 (sur l'axe des abscisses). Ceci afin d'avoir un graphe plus lisible avec un seul point par tranche.
J'ai essayé d'écrire le programme suivant, mais cela ne marche pas terrible...
déjà python me met "invalid slice" pour np.pi/18, et même si je change ma largeur en np.pi, cela ne marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 y = y.ravel() x = x.ravel() yr= y[~np.isnan(y)] xr = x[~np.isnan(y)] tranche = np.empty([1,19800]) #je définis mes matrices vides tranche=tranche.ravel() x2 = np.empty([1,19800]) x2=x2.ravel() for i in x[::np.pi/18]: y_tranche = yr[i-np.pi:i] tranche[i] = np.mean(~np.isnan(y_tranche)) x_tranche = xr[i-np.pi:i] x_tranche = psi_tranche[~np.isnan(psi_tranche)] x2[i] = (np.max(x_tranche)-np.min(x_tranche))/2 #le point aura une abscisse au milieu de la tranche
Je pense que je ne m'y prend pas très bien.
Auriez vous des conseils à me donner, existe t-il une fonction python pour faire cela directement?
Merci d'avance
Romain
Partager