我正在与经典的Dijkstra问题作斗争!
我有一组节点/坐标。我正在迭代它们以查看它们是否在给定的radius
内。
x = np.empty([0, 3], dtype=float)
for j in range(len(Coord)):
for k in range(len(Coord)):
a = np.sqrt(((Coord[j][0] - Coord[k][0]) ** 2) + ((Coord[j][1] - Coord[k][1]) ** 2))
if a < radius and a != 0:
y = np.array([j, k, a])
x = np.vstack((x, y))
其中Coord
是array
坐标。
这正确地给出了值,但是当0-> 3与3> 0相同时,我得到了大量重复数据。这是问题所在。数据应该是唯一的。
答案 0 :(得分:1)
一种可能性是在外环的位置开始内循环:
for j in range(len(Coord)):
for k in range(j,len(Coord)):
[loop body]
range
函数中的高开头将排除j
大于k
的所有值对,防止任何重复而不排除任何非重复值。