2017-09-18 2 views
1

So habe ich eine Deltatime-Array dt=[(20,6)(20,7)(20,9)(20,10)(20,11)(20,13)] und das Problem, das ich habe ist, dass ich nicht zulassen kann, dass Daten mehr als eine Sekunde neben dem nächsten Wert in der Liste sein. Ich schrieb ein wenig if-Anweisung, diePython-Entfernen bestimmter Elemente aus Deltatime-Array

for k in range(len(dt)-15): 
    if dt[k+1].seconds-dt[k].seconds>1: 
       gj.append(dt[k]) 
       gj.append(dt[k+1]) 

geht und ich am Ende mit (20,7)(20,9)(20,11)(20,13) so weiß ich, welche mal größer sind als eine Sekunde auseinander, aber ich kann nicht herausfinden, wie die Werte aus einem Array DELTA löscht . Ich habe versucht numpy.delete, aber das hat nicht funktioniert, weil es in einem nicht verwendbaren Format ist. Das Endziel ist ein neues Array [(20,6)(20,10)] mit nur Daten, die eine Sekunde auseinander liegen.

Antwort

0

Warum nicht auf einen Unterschied kleiner als 1 Sekunde prüfen und diese an eine Liste anhängen?

-Code

from datetime import time 

dt = [(20,6), (20,7), (20,9), (20,10), (20,11), (20,13)] 
dt = [time(0, m, s) for m, s in dt] 

left = [] 
for i in range(len(dt) - 1): 
    if dt[i + 1].second - dt[i].second <= 1: 
     left.append(dt[i]) 

print(left) 

Ergebnis

>>> [datetime.time(0, 20, 6), datetime.time(0, 20, 9), datetime.time(0, 20, 10)] 
Verwandte Themen