Thursday 23 February 2017

Moyenne Mobile Exponentielle De Convolution Numpy

Im écriture d'une fonction moyenne mobile qui utilise la fonction de convolution dans numpy, qui devrait être équivalente à une (moyenne mobile pondérée). Lorsque mes poids sont tous égaux (comme dans une moyenne arithmétique simple), il fonctionne très bien: Cependant, quand j'essaie d'utiliser une moyenne pondérée au lieu de (pour les mêmes données) 3.667,4.667,5.667,6.667. Je m'attends, je reçois Si je supprime le drapeau valide, je ne vois même pas les valeurs correctes. Je voudrais vraiment utiliser convolution pour le WMA ainsi que MA, car il rend le code plus propre (même code, poids différents) et sinon je pense que je dois boucler toutes les données et prendre des tranches. Toutes les idées sur ce comportement je joue en Python un peu à nouveau, et j'ai trouvé un livre soigné avec des exemples. Un des exemples est de tracer quelques données. J'ai un fichier. txt avec deux colonnes et j'ai les données. J'ai tracé les données très bien, mais dans l'exercice il dit: Modifier votre programme plus loin pour calculer et tracer la moyenne courante des données, définie par: où r5 dans ce cas (et le yk est la deuxième colonne dans le fichier de données) . Demandez au programme de tracer à la fois les données d'origine et la moyenne courante sur le même graphique. Jusqu'à présent, j'ai ceci: Comment puis-je calculer la somme Dans Mathematica sa simple depuis sa manipulation symbolique (Sumi, par exemple), mais comment calculer la somme en python qui prend tous les dix points dans les données et les moyennes, et le fait Jusqu'à la fin des points, j'ai regardé le livre, mais n'a trouvé rien qui pourrait expliquer cela: heltonbikers code a fait l'affaire: D Merci beaucoup :) Il ya un problème avec la réponse acceptée. Je pense que nous devons utiliser valide au lieu de même ici - retournez numpy. convolve (interval, window, same). A titre d'exemple, testez l'AM de cet ensemble de données 1,5,7,2,6,7,8,2,2,7,8,3,7,3,7,3,15,6 - le résultat Devrait être de 4,2,5,4,6,0,5,0,5,0,5,2,5,4,4,4,5,4,5,6,5,6,4,6,7,0,6,8. Mais en avoir la même nous donne une sortie incorrecte de 2.6.3.0,4.2,5.4,6.0,5.0,5.0,5.2,5.4,4.4,5.4,5.6,5.6, 4.6,7.0,6.8,6.2,4.8 Code rouillé pour essayer ceci -: Essayez ceci avec l'ampli valide même et voyez si la mathématique a un sens. J'ai essayé ceci dehors, mais je regarde dedans, il a été un temps depuis que j'ai codé en Python. Ndash dingod Oct 29 14 at 7:07 dingod Pourquoi ne pas essayer rapidement avec le code rouillé (et l'échantillon de données-set (comme une simple liste), j'ai posté. Pour certaines personnes paresseux (comme j'avais été au début) - il masque le fait que la moyenne mobile est incorrecte. Probablement, vous devriez envisager d'éditer votre réponse originale. J'ai essayé juste hier et la double vérification m'a sauvé le visage de regarder mal à signaler au niveau Cxo. Tout ce que vous devez faire, c'est d'essayer Votre même moyenne mobile une fois avec quotvalidquot et autre fois avec quotsamequot - et une fois que vous êtes convaincu me donner un peu d'amour (aka-up-vote) ndash ekta Oct 29 14 à 7: 16numpy. average Axe le long duquel la moyenne a. Le tableau des poids peut être soit 1-D (dans lequel la valeur de la pondération peut être 1-D) Cas sa longueur doit avoir la taille de a le long de l'axe donné) ou de la même forme que a. Si weightsNone. Alors toutes les données dans a sont supposées avoir un poids égal à un. revenu . Bool, optional La valeur par défaut est False. Si vrai . Le tuple (moyenne de sumofweights) est retourné, sinon seulement la moyenne est retournée. Si weightsNone. Sumofweights est équivalent au nombre d'éléments sur lesquels la moyenne est prise. Moyenne, sumofweights. Arraytype ou double Retourne la moyenne le long de l'axe spécifié. Lorsque renvoyé est Vrai. Retourner un tuple avec la moyenne comme premier élément et la somme des poids comme deuxième élément. Le type de retour est Float si a est de type entier, sinon il est du même type que a. Sumofweights est du même type que la moyenne.


No comments:

Post a Comment