2017-03-11 1 views
0

Ich fand, wie Schwimmer mit Gleichheit vergleichen hier:Numpy: Vergleichen schwebt mit Schwellen

Compare `float` and `float64` in python

Working with floating point NumPy arrays for comparison and related operations

und in anderen ähnlichen Fragen.

Aber ich kann nicht den besten Weg finden, wie man richtig schwimmt mit Schwellwert (größer oder kleiner).

Beispiel: Wir möchten überprüfen, ob Elemente in der Float-Matrix kleiner als Float-Schwelle sind.

eps = 0.1 
xx = np.array([[1,2,3], [4,5,6], [7,8,9]]) 
yy = np.array([[1.1,2.1,3.1], [4.1,5.1,6.1], [7.1,8.2,9.3]]) 
dif = np.absolute(xx - yy) 
print dif 
print dif < eps 

Druck:

[[ 0.1 0.1 0.1] 
[ 0.1 0.1 0.1] 
[ 0.1 0.2 0.3]] 
[[False False False] 
[ True True True] 
[ True False False]] 

Die einzige Lösung, die ich gefunden wird eine vectorize Funktion zu erstellen und jedes Element der Matrix mit treshold vergleichen: Erstens bestimmen sie nicht gleich sind und dann vergleichen mit < oder > . Danke für @MarkRansom.

+0

Bitte seien Sie etwas klarer. Meinst du, du hast einen Gleitkommawert, sag 'Schwelle', und willst du sehen, ob ein anderer Wert 'x' größer ist als dieser (oder vielleicht weniger)? Was ist mit 'if x> threshold 'falsch? –

+0

Ist http://stackoverflow.com/questions/5595425/what-is-the-best-way-to-compare-floats-for-al-altime-equality-in-python was Sie suchen? –

+0

@MarkRansom danke. Aber in dieser Antwort fand ich nur, wie man Schwimmer für Gleichheit vergleicht, aber nicht für mehr oder weniger. Vielleicht bin ich nicht aufmerksam genug. –

Antwort

0

In den meisten praktischen Fällen ist ein genauer Vergleich aufgrund der kleinen Fehler, die Sie während der Berechnungen sammeln, nicht möglich.

Wenn Sie richtige Zahlen machen wollen, müssen Sie eine Fehlerschätzung zusammen mit all Ihren Ergebnissen tragen, was ziemlich mühsam ist.

(Es gibt eine Bibliothek mit dem Namen Feuerstein mit einem python interface aber ich habe es nicht so verwendet wird, kann es nicht garantieren. Es ist ideal, um die Durchführung Fehlergrenzen (die strenger sind als Schätzungen) entlang allen Ergebnissen zu tun.)

in jedem Fall wird die Liste der möglichen Ergebnisse von größer gleich ändern müssen, weniger auf etwas mehr wie größer, wahrscheinlich größer, nicht zu unterscheiden, wahrscheinlich weniger, weniger

0

beachten Sie, dass a ≤ b-not a > b gleich .

Verwandte Themen