Ich bin Anfänger Programmierer auf der Suche nach Hilfe mit Simple Moving Average SMA. Ich arbeite mit Spaltendateien, wobei die erste mit der Zeit und die zweite mit dem Wert verbunden ist. Die Zeitintervalle sind zufällig und auch der Wert. Normalerweise sind die Dateien nicht groß, aber der Prozess sammelt Daten für lange Zeit. Am Ende sehen die Dateien ähnlich aus:Einfacher gleitender Durchschnitt für zufällig in Beziehung stehende Zeitwerte
+-----------+-------+ | Time | Value | +-----------+-------+ | 10 | 3 | | 1345 | 50 | | 1390 | 4 | | 2902 | 10 | | 34057 | 13 | | (...) | | | 898975456 | 10 | +-----------+-------+
Nach dem ganzen Prozess ist die Anzahl der Zeilen um 60k-100k.
Dann versuche ich, Daten mit einigen Zeitfenster zu "glätten". Zu diesem Zweck benutze ich SMA. [AWK_method]
awk 'BEGIN{size=$timewindow} {mod=NR%size; if(NR<=size){count++}else{sum-=array[mod]};sum+=$1;array[mod]=$1;print sum/count}' file.dat
mit $timewindow
vordefinierten ordnungsgemäßem Betrieb von SMA achive i mit Nullen gefüllt lineares Inkrement erstellen. Als nächstes führe ich ein Skript mit verschiedenen $timewindow
und ich beobachte die Ergebnisse.
+-----------+-------+ | Time | Value | +-----------+-------+ | 1 | 0 | | 2 | 0 | | 3 | 0 | | (...) | | | 10 | 3 | | 11 | 0 | | 12 | 0 | | (...) | | | 1343 | 0 | | (...) | | | 898975456 | 10 | +-----------+-------+
Für kleine Daten war es relativ bequem, aber jetzt ist es ziemlich zeitverschlingenden und erstellte Dateien zu groß zu sein, zu starten. Ich bin auch vertraut mit Gnuplot aber SMA dort die Hölle ...
hier So sind meine Fragen:
- Ist es möglich, die awk-Lösung zu ändern Füllen Daten mit Nullen zu umgehen?
- Empfehlen Sie irgendeine andere Lösung mit Bash?
- Ich habe auch darüber nachgedacht, Python zu lernen, weil ich nach 6 Monaten des Lernens Bash seine Begrenzung kennen gelernt habe. Kann ich das in Python lösen, ohne große Daten zu erstellen?
Ich werde mich mit jeder Form von Hilfe oder Ratschläge freuen.
Mit freundlichen Grüßen!
[AWK_method] http://www.commandlinefu.com/commands/view/2319/awk-perform-a-rolling-average-on-a-column-of-data
Was ist te erwartete Ausgabe für diese Probe Zufallsdaten? –