在2D数组中找到给定的特定坐标的邻居

问题描述 投票:0回答:1

我正在尝试使用python解决问题,这是我第一次编写python,因此希望您能为我提供帮助。我有一个2D数组,其值是-1,0,1我要做的是获取特定元素的坐标并获取所有相邻元素的坐标

Matrix = [[ 1,-1, 0],
          [ 1, 0, 0],
          [-1,-1, 1]]

例如,如果我有(0,0),则该函数可以返回(0,1)(1,0)

python
1个回答
1
投票

因为您要使用坐标,所以我想到的一种简单方法是使用NetworkX定义网格图并寻找neighbours

neighbours

例如,对于中间值的“坐标”:

import networkx as nx
import numpy as np

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

G = nx.grid_2d_graph(*a.shape)
list(G.neighbors((0,0)))
# [(1, 0), (0, 1)]

如果要使用它们为数组建立索引:

list(G.neighbors((1,1)))
# [(0, 1), (2, 1), (1, 0), (1, 2)]
© www.soinside.com 2019 - 2024. All rights reserved.