média móvel ponderada com numpy.convolve

Estou escrevendo uma função de média móvel que usa a função convolve em numpy, que deve ser equivalente a (média móvel ponderada). Quando meus pesos são todos iguais (como em uma média aritmética simples), funciona bem:

data = numpy.arange(1,11)
numdays = 5
w = [1.0/numdays]*numdays
numpy.convolve(data,w,'valid')

array([ 3.,  4.,  5.,  6.,  7.,  8.])

No entanto, quando tento usar uma média ponderada

w = numpy.cumsum(numpy.ones(numdays,dtype=float),axis=0); w = w/numpy.sum(w)

em vez do (para os mesmos dados) 3.667,4.667,5.667,6.667, ... eu espero, eu fico

array([ 2.33333333,  3.33333333,  4.33333333,  5.33333333,  6.33333333,
        7.33333333])

Se eu remover o sinalizador "válido", nem vejo os valores corretos. Eu realmente gostaria de usar convolve para o WMA, bem como MA, pois torna o código mais limpo (mesmo código, pesos diferentes) e caso contrário, eu acho que vou ter que percorrer todos os dados e tomar fatias.

Alguma idéia sobre esse comportamento?

questionAnswers(1)

yourAnswerToTheQuestion