Hallo Ich möchte den Zeitunterschied von zwei Nullen der ersten Ableitung eines Signals berechnen. Nehmen wir zum Beispiel sagen, dass die erste Ableitung:Python: Wie finde ich das Zeitintervall zwischen Werten verschiedener Zeichen?
d =[-0.2, 0.3, 0.2, 0.2, -0.1, 0.5]
t =[ 0, 13, 22, 23, 34, 50]
ich ein Array c
c = [(13-0), (34-13), (50-34)], i.e. c = [12, 21, 16]
Lasst uns haben wollen sagen, dass ich die ursprünglichen Daten für verschiedene user
in pUser
aufgezeichnet.
z = list()
for i in user:
sort_ind = np.argsort(pUser.time[i])
time_vec = pUser.time[i][sort_ind]
val_vec = pUser.val[i][sort_ind]
tmp0 = np.diff(val_vec)
s = np.sign(tmp0[0]) ## Sign of the first value (+1 or -1)
index = 0
zz = list()
for j in range(1,len(tmp0)):
if (np.sign(tmp0[j]) + s)==0:
s = np.sign(tmp0[j])
dt = (time_vec[j]-time_vec[index])/(2*np.timedelta64(1, 's'))
zz.append(dt)
index = j
z.append(zz)
Aber wegen len(tmp0) ~ 10^4-10^5
dauert diese Schleife eine Weile. Ich frage mich, ob es einen schnelleren Weg gibt, diese Schleife zu vermeiden.
'10^9'? Das wird schwer .. – JeD
Eigentlich weniger, sorry, ich habe die Größe geändert – emax
Kann ich fragen, wie lange es für Sie dauert? – JeD