ich sitze jetzt schon etwas länger an folgendem Problem, das ich euch hier reduziert vorstellen möchte. Ich bekomme Messdaten mit einem Timestamp. Die sehen folgendermaßen aus (sind in Wirklichkeit sehr viel größer, das / t steht für Tab):
Datei1:
01.01.2018 11:11:11 /t 5
01.01.2018 11:11:11 /t 5
01.01.2018 11:11:11 /t 5
01.01.2018 11:11:12 /t 5
01.01.2018 11:11:12 /t 5
01.01.2018 11:11:12 /t 5
01.01.2018 11:11:13 /t 5
...
Datei2:
01.01.2018 11:11:12 /t 45
01.01.2018 11:11:13 /t 65
...
ich lese das ganze mittels Numpy ein und möchte nur die Werte betrachten die einen übereinstimmenden Zeitstempel besitzen und davon auch nur den Ersten.
Code: Alles auswählen
import numpy
Flanke_Zeit = numpy.genfromtxt("Datei2.txt", usecols=0, delimiter="\t", dtype=str)
Temp_Zeit = numpy.genfromtxt("Datei1.txt", usecols=0, delimiter="\t", dtype=str)
Temp = numpy.genfromtxt("Datei1.txt", usecols=1, delimiter="\t", dtype=str)
mixed = numpy.column_stack((Temp_Zeit,Temp))
zeit_sync = []
for tempzeit in range(0,len(Temp)):
for FLZ in range(0,len(Flanke_Zeit)):
if mixed[tempzeit][0] == Flanke_Zeit[FLZ]:
eintrag = [mixed[tempzeit]]
zeit_sync.append(eintrag)
break
Ich habe folgendes schon versucht, doch leider nicht umsetzen können.
- Da die Zeitstempel cronologisch sind, wollte ich immer nur den ersten von Datei2 vergleichen --> funktioniert aber liefert nur ungefährt 0.1 der Werte zurück.
- Löschen aus Np.arrays geht ja leider nicht und immer ein neuen eingabe array habe ich nicht hinbekommen.
Das wirklich schlimme an der Sache ist nun, dass ein Kollege dieses Problem mit "Lua" in 30 Sekunden Laufzeit hinbekommt, wo mein Skript 30 Minuten rechnet. Was mache ich falsch?
Bin für alle Vorschläge offen:-)