Ich versuche zwei Arrays zu vergleichen. Es kommt einfach so vor, dass die Daten für die Arrays NaN
Werte enthalten und wenn Sie Arrays mit NaN
Werten vergleichen , sind die Ergebnisse nicht das, was ich erwartet hätte.
julia> a = [1,2, NaN]
3-element Array{Float64,1}:
1.0
2.0
NaN
julia> b = [1,2, NaN]
3-element Array{Float64,1}:
1.0
2.0
NaN
julia> a == b
false
Gibt es eine elegante Möglichkeit, diese Nan
beim Vergleich zu ignorieren oder effizient zu ersetzen?
Sie möchten wahrscheinlich verwenden
isequal(a, b)
(was auchmissing
gleichmissing
, aber-0.0
ungleich behandelt0.0
).quelle
Sie können die NaNs in jedem Array herausfiltern:
Sie können dann eine Funktion erstellen, die die Filterung ausführt, und eine benutzerdefinierte Vergleichsfunktion, die die Filterfunktion für beide Argumente und den Vergleich verwendet. Ich bin mir nicht sicher, ob es einen Julia-ähnlichen Weg gibt.
quelle
Oder erstellen Sie einen neuen Typ. Und erstellen Sie einen Singleton,
nan
den Sie anstelle von NaN verwenden.und schreibe eine Funktion zum Ersetzen von
NaN
s durch sie.Dann können Sie Ihre Listen mit dieser Funktion umbrechen.
quelle