Если вы просто хотите преобразовать код Java из примера, можно использовать Numpy:
import numpy as np
dim_x = 5
dim_y = 4
#initialize with zeros
visited = np.zeros((dim_y, dim_x))
visited[3][3] = 1
print(visited)
Другой вариант - использовать простой вложенный список («2d список») :
dim_x = 5
dim_y = 4
#initialize with zeros
visited = [[0 for _x in range(dim_x)] for _y in range(dim_y)]
visited[3][3] = 1
print(visited)
Вы можете взглянуть на NetworkX. Есть функции, которые, кажется, делают то, что вам нужно, например, connected_component_subgraphs ( Пример 1 , Пример 2 )
Вам может понадобиться функция для рассчитать выпуклую оболочку узлов, есть несколько доступных, но я не уверен, есть ли в NetworkX такой.