2016-06-07 2 views
0

Я совершенно новый для Numpy, и я не мог найти ничего, удовлетворяющего моему требованию.numpy count где разница между значениями больше, чем что-то

Есть ли хороший способ сделать count.where (value-value2> threshold)?

У меня есть топор, у позиции Numpy массив, и мне нужно, чтобы посчитать ближайших соседей

что-то похожее на это:

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

У меня есть 4 соседей на 93/256-257 и 2 на 54-55/130-131

+0

Ваше 'value-value2' на самом деле не применяется к члену кортежа, а к двум различным кортежам? У вас есть метрика, чтобы получить расстояние между двумя этими кортежами? – pekapa

ответ

0

Если вы просто хотите, чтобы подсчитать, сколько вхождений:

условие является 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]) 

Если у вас есть условие на оба координатах х и у, то вы можете сделать что-то вроде этого:

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

Надеется, что это помогает.

0

Существует подходящий метод расчета соседей - numpy.isclose(a, b, atol). Следующие Рассчитывает соседи находятся в пределах от 4:

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

Результат рассчитывается для обеих точек в кортеже:

[True, True] 

Может быть, это будет полезно.

Смежные вопросы