Ich arbeite mit numpy.convolve. Um ehrlich zu sein, bin ich mir nicht sicher, ob ich das richtige Modul für das Projekt verwende, an dem ich arbeite. Frage: Ich will numpy falten (oder wenn es ein anderes Modul, das ich implementieren kann), um vorherige Nummern nicht zu ändern. Hinzufügen. Ich möchte nicht, dass sich die alten Zahlen ändern, ich möchte, dass sie repariert werden. Wenn ich neue Daten bekomme, ist die einzige Zahl, die betroffen sein sollte, die neue, nicht der Rest. Hiernumpy.convolve Python alte Zahlen können nicht geändert werden
ein Beispiel: (. Zu klären, ist es besser)
import numpy
N = 3
numbers = [11,-5,54,-100,1]
numbers_mean = numpy.convolve(numbers, numpy.ones((N,))/N)[(N-1):]
print numbers_mean
Ausgang:
[ 20. -17. -15. -33. 0.33333333]
ABER Wenn ich ändern, um die letzte Zahl auf 100 statt 1 ändert sich das Ergebnis alle 3 Nummern.
N = 3
numbers = [11,-5,54,-100,100]
numbers_mean = numpy.convolve(numbers, numpy.ones((N,))/N)[(N-1):]
print numbers_mean
Ausgang:
[ 20. -17. 18. 0. 33.33333333]
GERADE DIE AUSGÄNGE: . .
[ 20. -17. -15. -33. 0.33333333]
[ 20. -17. 18. 0. 33.33333333]
Das ist was ich sehen will:
[ 20. -17. -15. -33. 33.33333333<- this number only should change not the rest]
So wie Sie sehen können, wenn die Zahl von 1 bis 100 geht es die -33 verändert. zu 0. das ist nicht das, was ich will Ich möchte alle diese Zahlen zu festen und keine Änderung der einzigen Zahl, die in der Lage sein sollte zu ändern ist die neueste Nummer. in diesem Fall 33.333333 von 0.3333
Gibt es irgendein Modul oder Weg, wie ich dies in Python implantieren kann.
Danke
Was wäre die Berechnung auf der 4. Nummer? Ich kann die Daten nicht verzögern. es muss führen. Also müssen alle Zahlen eine Berechnung haben, wenn ich zum Beispiel 5 Zahlen habe, möchte ich den Durchschnitt finden [2 + 3 + 4 + 1 + 8]/5 = 3,6. Als nächstes bekomme ich neue Daten Nun habe ich insgesamt 6 Zahlen [2 + 3 + 4 + 1 + 8 + 4] und ich möchte sie wieder durch 5 teilen (IMMER lässt sich sagen) jetzt nehme ich [3 + 4 + 1 + 8 +4]/5 = 4. Wieder bekomme ich neue Daten, jetzt habe ich insgesamt 7 Zahlen [2 + 3 + 4 + 1 + 8 + 4 + 9] und dividiere ich durch 5 [4 + 1 + 8 + 4 + 9]/5 = 5.2. Das ist es, was ich zusammenfalten möchte. ist es möglich??? –
Ich schlug einen anderen Ansatz vor, aber ich bin mir nicht sicher, ob ich Ihr Ziel verstehe. Alle diese Methoden müssen alle Mittel für jede neue Daten neu berechnen. –
danke für die Klärung der Convole für mich. Außerdem werde ich diese Formel tmwr auf meine vollständigen Daten versuchen. das einzige was nullen sollte np.zeros sein und anordnen sollte np.angegangen sein denke ich. :) Danke nochmal –