我正在尝试使用python解决问题,这是我第一次编写python,因此希望您能为我提供帮助。我有一个2D数组,其值是-1,0,1
我要做的是获取特定元素的坐标并获取所有相邻元素的坐标
Matrix = [[ 1,-1, 0],
[ 1, 0, 0],
[-1,-1, 1]]
例如,如果我有(0,0)
,则该函数可以返回(0,1)
,(1,0)
因为您要使用坐标,所以我想到的一种简单方法是使用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)]