Как эффективно рассчитать расстояние до ближайшего 1 в маске в numpy?

В numpy у меня есть массив 2d из 1 и 0. Мне нужно рассчитать новый массив (те же размеры), где каждый элемент содержит расстояние до ближайшего 1 от соответствующей точки в массиве маски.

напр.

a=np.array(
[[1,1,0],
[1,0,0],
[1,0,0]])

Мне нужно, чтобы b выглядело так:

array([[0,0,1],
       [0,1,1.41],
       [0,1,2]])

PS. Я буду делать это на очень больших массивах, так что чем эффективнее, тем лучше! Спасибо!

5
задан Pete W 12 March 2012 в 15:22
поделиться