Я хочу найти индекс ближайшего перехода в numpy ndarray целых чисел с учетом текущего индекса эффективным способом. Переход означает изменение значения.
Например, в приведенном ниже 2D-массиве правильный выход для местоположения (2,4) будет (3,6) (переход из класса 1 в класс 8) в приблизительное расстояние 2,236. В случае более чем одного оптимального возврата достаточно будет любого.
import seaborn as sns
import numpy as np
step_size = [1,1] # size of step in each dimension
arr = np.array([[6,6,1,1,1,1,1,1,1,8],[6,1,1,1,1,1,1,1,8,8],[6,1,1,1,1,1,1,1,8,8],[6,1,1,1,1,1,8,8,8,8],[6,6,1,1,1,1,1,8,8,8]])
sns.heatmap(arr, annot=True, cbar=False)

Приложение предназначено для оценки расстояний до границ. Например, расстояние выборки до границы решения в алгоритмах классификации, где точный алгоритм или формула для этого недоступна (например, xgboost и в отличие от SVM и деревьев решений ).