Я знаю, что это легкомысленный вопрос, но есть ли способ воспроизвести эту функциональность без использования библиотеки scikit?
Этот вопрос по сути то, что я пытаюсь сделать.Насколько я понял, возможно, использую концепцию соседей через мета-массив, но я все еще борюсь с идеей, как разделить это на разные массивы для каждого набора соседей.
Редактировать:Извините, я не задавал много вопросов здесь, понял, что это трудно без реальных примеров.
Например, учитывая массив numpy:
[ 0, 0, 1, 1, 0, 0 ]
[ 0, 0, 1, 0, 0, 0 ]
[ 0, 0, 1, 1, 0, 0 ]
[ 0, 0, 0, 0, 0, 0 ]
[ 0, 1, 1, 1, 0, 0 ]
[ 0, 1, 1, 0, 0, 0 ]
Я пытаюсь получить вывод, который два разныхмассивы с указателем расположения значений касания (исключая нули).Итак, желаемый результат:
output1 = [[0,2], [0,3], [1,2], [2,2], [2,3]]
output2 = [[4,1], [4,2], [4,3], [5,1], [5,2]]
Правка № 2: я добился определенного прогресса.Теперь я могу создать список списков.Вот код:
data = np.asarray(image_x)
vals = np.argwhere(data == 0)
list = []
listoflists = []
row = -1
for x in range(0, vals.shape[0]):
for y in range(0, vals.shape[1]-1):
if row == -1:
row = vals[x][0]
if row == vals[x][0]:
list.append(vals[x][1])
else:
listoflists.append((vals[x-1][0], list))
row = vals[x][0]
list = []
list.append(vals[x][1])
Примечания:
image_x
- черно-белое изображение контуров формы - Цикл в настоящее время не захватываетпиксель, если это один пиксель в одной строке в самом конце.Я устраняю это сейчас, просто хотел опубликовать обновление в моем волнении.