Python:如何创建包含距离点的欧几里德距离的列表的字典?

时间:2016-03-31 11:08:10

标签: python dictionary euclidean-distance

假设我有一组具有给定坐标的常规网格,如下所示:

Node IDs            Coordinates
0   1   2           (0,0)  (1,0)  (2,0)
3   4   5           (0,1)  (1,1)  (2,1)
6   7   8           (0,2)  (1,2)  (2,2)

在我的例子中,常规网格是使用NetworkX生成的2D graph

如何创建dict列表,其中键表示网络中的每个节点ID,列表中包含从一个特定节点到连接到该节点的节点的距离?

示例:节点(0,0)已连接到节点(1,0)(0,1)。考虑到平方距离以避免sqrt的计算成本,我想要的字典将以mydict={0:[1,1],...]为特征,因为从节点(0,0)到其连接的邻居的平方距离在两种情况下均为1。因此,只要每个节点都有邻居,就会生成列表。

我没有提供一些代码,因为我不了解如何解决问题。非常感谢那些愿意帮助的人。

修改

这是常规网络的创建方式:

import networkx as nx
N=3
G=nx.grid_2d_graph(N,N)
pos = dict( (n, n) for n in G.nodes() )
labels = dict( ((i, j), i + (N-1-j) * N ) for i, j in G.nodes() )
nx.relabel_nodes(G,labels,False)
inds=labels.keys()
vals=labels.values()
inds.sort()
vals.sort()
pos2=dict(zip(vals,inds))
nx.draw_networkx(G, pos=pos2, with_labels=False, node_size = 15)

这就是人们如何获得每个节点的邻居:

for node in G.nodes():
        list_of_neigh=G.neighbors(node) #The connected neighbors of node n

这就是人们可以访问图表中每个节点的方式:

G.nodes()

1 个答案:

答案 0 :(得分:1)

假设节点是元组(a,b),就像这样(未经测试)? :

setuptools