私はnumpy.convolveを使っています。正直言って私が働いているプロジェクトに正しいモジュールを使用しているかどうかはわかりません。 質問: numpy convolveが必要な場合(または実装できる他のモジュールがある場合)、以前の数値を変更しないでください。たす。私は古い番号が変わることを望みません。私はそれらを修正して欲しいです。だから私が新しいデータを取得するときに影響を与えるべき数字は、新しいものだけであり、残りのものではありません。ここでnumpy.convolve python古い番号は変更できません
は例です(。良いことを明確にするために)
import numpy
N = 3
numbers = [11,-5,54,-100,1]
numbers_mean = numpy.convolve(numbers, numpy.ones((N,))/N)[(N-1):]
print numbers_mean
出力:
[ 20. -17. -15. -33. 0.33333333]
しかし 私は100点の代わりに、1結果の変化への最後の番号を変更した場合すべての3つの数字。
N = 3
numbers = [11,-5,54,-100,100]
numbers_mean = numpy.convolve(numbers, numpy.ones((N,))/N)[(N-1):]
print numbers_mean
出力:
[ 20. -17. 18. 0. 33.33333333]
JUST OUTPUTS: 。 。
[ 20. -17. -15. -33. 0.33333333]
[ 20. -17. 18. 0. 33.33333333]
これは私が見たいです:
[ 20. -17. -15. -33. 33.33333333<- this number only should change not the rest]
数は、それが-33を変更し、1から100まで行くとき、あなたが見ることができるように。これは私が望むものではありません。それらの数字のすべてを固定し、変更できる唯一の数字を変更するものは、最新の数字ではありません。この場合、33.333333から0.3333
私はこれをPythonで移植することができますか?
iがnumpyの専門家ではないので、私はあなたにそのためのPythonのソリューションを提案しますあなたの
4番目の数字はどのような計算になりますか?私はデータが遅れていることはできません。それは先導する必要があります。したがって、すべての数値には計算が必要です。たとえば、5つの数値がある場合、平均[2 + 3 + 4 + 1 + 8]/5 = 3.6を求めたいと思います。次に新しいデータが得られるようになりました[2 + 3 + 4 + 1 + 8 + 4]という6つの数字の合計があり、5でもう一度分割したいと考えています(今の場合はいつも)3 + 4 + 1 + 8 +4]/5 = 4となる。ここでも新しいデータが得られます。合計で7 + 4 + 1 + 8 + 4 + 9の数字があり、5で除算するので、[4 + 1 + 8 + 4 + 9]/5 = 5.2となります。これは私が畳んで欲しいものです。出来ますか??? –
私は他のアプローチを提案しましたが、あなたの目標を理解しているかどうかはわかりません。これらの方法はすべて、新しいデータごとにすべての手段を再計算する必要があります。 –
私のためにconvoleを明確にしてくれてありがとう。さらに、私は完全なデータにこの式tmwrを試してみます。唯一のことは、ゼロはnp.zerosでなければならず、アレンジはnp.arangeでなければならないと思います。 :) ありがとうございました –