2016-06-07 11 views
0

Ich bin ziemlich neu in Numpy, und ich konnte nichts finden, meine Anforderungen zu erfüllen.numpy count wo der Unterschied zwischen Werten größer als etwas

Gibt es eine gute Möglichkeit, eine count.where (Wert-Wert2> Schwelle) zu tun?

Ich habe ax, y Position numpy Array und ich brauche die nächsten Nachbarn

ähnlich

Etwas dazu zählen:

[(93, 256), (93, 256), (93, 256), (93, 257), (54, 130), (55,131)]

Ich habe 4 Nachbarn auf 93/256-257 und 2 auf 54-55/130-131

+0

Ihr 'value-value2' wird nicht wirklich auf den Member des Tupels angewendet, sondern auf zwei verschiedene Tupel? Haben Sie eine Metrik, um den Abstand zwischen zwei dieser Tupel zu erhalten? – pekapa

Antwort

0

Wenn Sie nur, wie viele Ereignisse zählen:

Die Bedingung ist value1 - value0 > 100

x = np.array([[93, 256], [93, 256], [93, 256], [93, 257], [54, 130], [55, 131]]) 
y = np.where(x[:,1] - x[:,0] > 100) 
print(y[0].shape[0]) 

Wenn Sie Bedingung auf beiden x- und y-Koordinaten haben, dann können Sie etwas tun:

y = np.where((x[:,1] - 256 < 10) & (x[:,0] - 50 > 40)) 

Hoffnung, das hilft.

0

Es gibt eine geeignete Methode zur Berechnung von Nachbarn - numpy.isclose(a, b, atol). Die folgenden berechneten Nachbarn in einem Bereich von 4:

threshold = 4 
np.isclose([93, 256], [94, 256], atol=threshold) 

Das Ergebnis für beiden Punkte in einem Tupel berechnet:

[True, True] 

Vielleicht wird es hilfreich sein.

Verwandte Themen