ich die Funktion numpy.unwrap
zu verwenden, versuchen etwas PhaseFehler mit numpy auspacken, wenn die Verwendung von langen Arrays
Ich habe lange Vektor mit 2.678.399 Datensätze zu korrigieren, die den Unterschied in Radianten zwischen zwei Winkeln enthalten. Das Array enthält Nan-Werte, obwohl ich denke, dass es nicht relevant ist, da Unwrap für jeden Datensatz unabhängig angewendet wird.
Wenn ich aufgebracht unwrap, durch den 400 Rekord
im Rest des Feldes nan Werte erzeugt Wenn ich np.unwrap gelte nur eine Scheibe des ursprünglichen Arrays funktioniert gut.
Ist das ein möglicher Fehler in dieser Funktion?
d90dif=(df2['d90']-df2['d90avg'])*(np.pi/180)#difference between two angles in radians
df2['d90dif']=np.unwrap(d90dif.values)#unwrap to the array to create new column
nur das Problem
d90dif[700:705]#angle difference for some records
2013-01-01 00:11:41 0.087808
2013-01-01 00:11:42 0.052901
2013-01-01 00:11:43 0.000541
2013-01-01 00:11:44 0.087808
2013-01-01 00:11:45 0.017995
dtype: float64
df2['d90dif'][700:705]#results with unwrap for these records
2013-01-01 00:11:41 NaN
2013-01-01 00:11:42 NaN
2013-01-01 00:11:43 NaN
2013-01-01 00:11:44 NaN
2013-01-01 00:11:45 NaN
Name: d90dif, dtype: float64
jetzt zu erklären, ich den Prozess mit einem kleinen Array wiederholen
test=d90dif[700:705]
2013-01-01 00:11:41 0.087808
2013-01-01 00:11:42 0.052901
2013-01-01 00:11:43 0.000541
2013-01-01 00:11:44 0.087808
2013-01-01 00:11:45 0.017995
dtype: float64
unw=np.unwrap(test.values)
array([ 0.08780774, 0.05290116, 0.00054128, 0.08780774, 0.01799457])
jetzt in Ordnung ist. Wenn ich es mit einem Datenrahmen Eingang in unwrap tun() funktioniert gut und
Ok. Dann macht es Sinn. Aber ich weiß, dass die entsprechende Funktion in Matlab kein solches Problem verursacht – gis20