2016-05-04 18 views
2

Ich habe ein langes numply Array mit Windrichtungsaufzeichnungen, und ich versuche, numpy unwrap zu verwenden, bevor ich einen Algorithmus verwende, um Sprünge in den Daten zu ermitteln. Die Daten enthalten NaNs, und numpy scheint das nicht verarbeiten zu können. Sobald ein NaN gefunden wird, werden alle folgenden Datenpunkte, die von unwrap zurückgegeben werden, ebenfalls in NaNs umgewandelt. Gibt es einen Weg dahin?Numpy Unwrap Ignorieren NaN

Ich denke, meine Frage läuft auf die gleiche Frage wie geschrieben here, aber es wird nur festgestellt, dass der Fehler mit NaNs in den Daten und keine Lösung angeboten wird.

Antwort

3

Angenommen Sie haben die NaNs behalten möchten, ist die einfachste Lösung, um die NaNs zu maskieren, bevor das Array unwrap vorbei und verwenden die gleiche Maske das Ergebnis zurück zu schreiben:

a[~np.isnan(a)] = np.unwrap(a[~np.isnan(a)]) 

Wenn Sie behalten möchten das ursprüngliche Array, verwenden Sie np.copy:

b = np.copy(a) 
b[~np.isnan(b)] = np.unwrap(b[~np.isnan(b)]) 
Verwandte Themen