Hmmm, il semble que ce quoteasy à implementationquot fonction est en fait assez facile de se tromper et a favorisé une bonne discussion sur l'efficacité de la mémoire. Je suis heureux d'avoir des ballonnements, si cela veut dire savoir que quelque chose a bien été fait. Ndash Richard Sep 20 14 at 19:23 NumPys manque d'une fonction particulière domaine spécifique est peut-être due à la discipline des équipes de base et la fidélité à la directive NumPys prime: fournir un type de tableau N-dimensionnelle. Ainsi que des fonctions pour créer et indexer ces tableaux. Comme beaucoup d'objectifs fondamentaux, celui-ci n'est pas petit, et NumPy le fait brillamment. Le SciPy (beaucoup plus grand) contient une collection beaucoup plus grande de bibliothèques spécifiques au domaine (appelées sous-paquets par SciPy devs) - par exemple, l'optimisation numérique (optimiser), le traitement du signal (signal) et le calcul intégral (intégrer). Ma conjecture est que la fonction que vous recherchez est dans au moins un des sous-paquets SciPy (scipy. signal peut-être) cependant, je regarderais d'abord dans la collection de SciPy scikits. Identifier les scikit (s) pertinent (s) et chercher la fonction d'intérêt là-bas. Scikits sont développés indépendamment paquets basés sur NumPySciPy et dirigé vers une discipline technique particulière (par exemple, scikits-image, scikits-learn, etc) Plusieurs de ces ont été (en particulier, le génial OpenOpt pour l'optimisation numérique) Avant de choisir de résider sous la rubrique relativement nouvelle scikits. La page d'accueil Scikits aimé au-dessus des listes d'environ 30 scikits tels. Bien qu'au moins plusieurs d'entre eux ne soient plus en développement actif. En conséquence, Pandas est devenue, AFAIK, la bibliothèque de séries chronologiques de NumPy de facto. Pandas a plusieurs fonctions qui peuvent être utilisées pour calculer une moyenne mobile la plus simple de ces est probablement rollingmean. Que vous utilisez comme suit: Maintenant, il suffit d'appeler la fonction rollingmean passant dans l'objet Series et une taille de fenêtre. Qui dans mon exemple ci-dessous est de 10 jours. Vérifier qu'il fonctionnait - par ex. Les valeurs comparées de 10 à 15 dans la série originale par rapport à la nouvelle série lissée avec moyenne de roulis Le mécanisme de fonction, ainsi qu'une douzaine d'autres fonctions sont regroupés de manière informelle dans la documentation Pandas sous la rubrique des fonctions de fenêtre mobile un deuxième groupe de fonctions connexes Dans Pandas est désignée sous le nom de fonctions pondérées exponentiellement (par exemple, ewma, qui calcule une moyenne pondérée exponentiellement mobile). Le fait que ce second groupe ne soit pas inclus dans la première (fonctions de fenêtres mobiles) est peut-être parce que les transformations pondérées exponentiellement ne dépendent pas d'une fenêtre de longueur fixe. Je joue encore en Python 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 ayant 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: 16Les exemples suivants produit une moyenne mobile des valeurs précédentes WINDOW. Nous tronquons les premières valeurs (WINDOW -1) puisque nous ne pouvons pas trouver la moyenne avant elles. (Le comportement par défaut pour la convolution est de supposer que les valeurs avant le début de notre séquence sont 0) (Plus formellement, nous construisons la séquence y pour La suite x où yi (xi x (i1) 8230. x (in)) n) Ceci fait appel à la fonction de convolution numpy8217s. Il s'agit d'une opération de moyenne mobile à usage général. La modification des pondérations rend certaines valeurs plus importantes, le décalage de manière appropriée vous permet de voir la moyenne autour du point plutôt qu'avant le point. Plutôt que de tronquer des valeurs, nous pouvons fixer les valeurs initiales en place, comme illustré dans cet exemple:
No comments:
Post a Comment