Friday 15 September 2017

Plotar Python Médio Móvel


Eu estou jogando em Python um pouco novamente, e eu encontrei um livro limpo com exemplos. Um dos exemplos é traçar alguns dados. Eu tenho um arquivo. txt com duas colunas e eu tenho os dados. Eu planejei os dados bem, mas no exercício que diz: Modifique seu programa ainda para calcular e traçar a média de execução dos dados, definida por: onde r5 neste caso (e o yk é a segunda coluna no arquivo de dados) . Peça ao programa que trace os dados originais e a média em execução no mesmo gráfico. Até agora, eu tenho isso: então, como faço para calcular a soma em Mathematica é simples desde sua manipulação simbólica (Sumi, por exemplo), mas como calcular a soma em python, que leva cada dez pontos nos dados e a média, e faz isso Até o final dos pontos eu olhei para o livro, mas não encontrei nada que explicasse isso: o código da heltonbikers fez o truque: D Muito obrigado :) Existe um problema com a resposta aceita. Eu acho que precisamos usar válido em vez do mesmo aqui - retornar numpy. convolve (intervalo, janela, o mesmo). Como um exemplo, experimente a MA desse conjunto de dados 1,5,7,2,6,7,8,2,2,7,8,3,7,3,7,3,15,6 - o resultado Deve ser 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. Mas ter o mesmo dá-nos uma produção incorreta 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 Código oxidado para tentar isso -: Tente isso com um válido amplificador e veja se a matemática faz sentido. Respondeu 29 de outubro às 4:27 Haven39t tentou isso, mas eu vou olhar para ele, faz um tempo desde que eu fui codificado em Python. Ndash dingod 29 de outubro 14 às 7:07 dingod Por que não tenta rapidamente isso com o código oxidado (e o conjunto de dados de amostra (como uma lista simples), publiquei. Para algumas pessoas preguiçosas (como eu já estive no início) - está mascarando o fato de que a média móvel está incorreta. Provavelmente, você deveria considerar a edição de sua resposta original. Eu tentei isso apenas ontem e as revisões duplas me salvaram de parecer mal em relatar ao nível Cxo. Tudo o que você precisa fazer é tentar Sua mesma média móvel uma vez com quotvalidquot e outra vez com quotsamequot - e uma vez que você está convencido me dê algum amor (aka-up-vote) ndash ekta 29 de outubro 14 em 7: 16 Preciso de ajuda planejando uma média móvel em cima dos dados I Eu já consigo tramar (veja abaixo) Estou tentando fazer m (minha média móvel) igual ao comprimento de y (meus dados) e, em meu loop for, eu pareço ter a matemática certa para minha média móvel. Funciona: traçando x e y O que não funciona: plotando m em cima de x amp y e me dá esse erro RuntimeWarning: valor inválido Encontrado em duplicados. Minha teoria: eu estou configurando m para np. arrays y. hahape e, em seguida, criando meu loop for para fazer m igual ao conjunto de matemática dentro do loop, substituindo assim todos os 0s pela média móvel, acho que a resposta lmjohns3 é correta , Mas você tem alguns problemas com sua função de média móvel. Em primeiro lugar, há o problema de indexação que o lmjohns3 apontou. Pegue os seguintes dados, por exemplo: Sua função fornece os seguintes valores médios móveis: O tamanho dessa matriz (7) é muito pequeno por um número. O último valor na média móvel deve ser (789) 38. Para corrigir que você poderia alterar sua função da seguinte maneira: O segundo problema é que, para traçar dois conjuntos de dados, o número total de pontos de dados precisa ser o mesmo. Sua função retorna um novo conjunto de dados que é menor do que o conjunto de dados original. (Você talvez não tenha notado porque você pré-atribuiu uma matriz de zeros do mesmo tamanho. Seu loop for sempre produzirá uma matriz com um monte de zeros no final.) A função de convolução fornece os dados corretos, mas tem dois valores extras ( Alguns em cada extremidade) devido ao mesmo argumento, o que garante que a nova matriz de dados tenha o mesmo tamanho que o original. Como um método alternativo, você poderia vetualizar seu código usando a função Numpys cumsum. (O último é uma modificação da resposta em uma publicação anterior.) O truque pode ser que você deve soltar os primeiros valores da matriz da data. Por exemplo, use a seguinte chamada de trama, onde n é o número de pontos na sua média: o problema aqui vive em sua computação da média móvel - você apenas tem alguns problemas off-by-one na indexação. Aqui, você obteve Tudo certo, exceto para: 1. Isso diz ao intérprete para fazer uma fatia começando pelo que i-10 acontece, e acabar apenas antes de 1. Mas se i-10 for maior do que 1. isso resulta na lista vazia. Para corrigi-lo, basta substituir 1 com i. Além disso, seu alcance precisa ser estendido por um no final. Substitua y. shape0 por y. haha01. Alternativa, eu apenas pensei em mencionar que você pode calcular a média móvel de forma mais automática usando np. convolve (docs): neste caso, m terá o mesmo comprimento que y. Mas os valores da média móvel podem parecer estranhos no início e no final. Isso ocorre porque o mesmo efetivamente faz com que y seja preenchido com zeros em ambas as extremidades, de modo que existam valores suficientes para usar ao computar a convolução. Se você preferir obter apenas valores médios móveis que são computados usando valores de y (e não de preenchimento zero adicional), você pode substituir o mesmo por válido. Neste caso, como Ryan aponta, m será menor do que y (mais precisamente, len (m) len (y) - len (filtro) 1), que você pode abordar no seu gráfico, removendo o primeiro ou o último elemento de Sua matriz de datas. Respondeu 17 de agosto às 20: 58Nós apresentamos anteriormente como criar médias móveis usando python. Este tutorial será uma continuação deste tópico. Uma média móvel no contexto das estatísticas, também chamada de média de deslocamento, é um tipo de resposta de impulso finito. Em nosso tutorial anterior, traçamos os valores das matrizes x e y: Let8217s traçam x contra a média móvel de y que devemos chamar yMA: Em primeiro lugar, let8217s igualam o comprimento de ambos os arrays: E para mostrar isso em contexto: O resultante Gráfico: Para ajudar a entender isso, let8217s traçam dois relacionamentos diferentes: x vs y e x vs MAy: A média móvel aqui é o gráfico verde que começa em 3: Compartilhe isso: Curtiu: Postar navegação Deixe uma resposta Cancelar resposta Muito útil eu Gostaria de ler a última parte em grandes conjuntos de dados Espero que venha em breve8230 d blogueiros como este:

No comments:

Post a Comment