我对networkx和图形非常陌生,希望你的帮助。在
我正在设计一个图,其中每个节点都有一个node_id(这是我要迭代生成图形的点数)和五个属性。在
即
G.add_node(node_id)
G[id]['Coord1'] = 3
G[id]['Coord2'] = 7
G[id]['Coord3'] = None
G[id]['Coord4'] = None
G[id]['Coord5'] = None
现在我想考虑添加一个新的节点,带有一些坐标。在
现在在向我的图中添加一个新节点之前,我要检查是否已经有一个节点具有与我要添加的节点相同的属性(其中一个坐标)。在
如果已经存在一个具有共享坐标的节点,那么我不会添加新节点,而只是对现有节点进行一些更改。在
我能想到的唯一方法是循环遍历图中所有现有的节点,并检查其中一个属性是否与我打算添加的节点相同。E、 g
^{pr2}$其中tempcoord是我要添加的节点上的相关坐标。在
这显然非常低效,每次我想添加节点都要检查所有现有节点,我的问题是:有没有更好的方法?在
我知道networkx不会添加具有相同id的新节点,但不会扩展到共享相同属性的节点,对吗?在
或者,在我添加了所有这些“重复”节点之后,是不是更好地构建包含所有这些“重复”节点的图,然后将具有某些共享属性的所有节点压缩为一个节点?在
很抱歉我的解释有些复杂,我希望这是有意义的。在
创建一个包含所有观察到的节点属性的集。如果要添加具有给定属性的节点,请检查该属性是否存在。如果是,则不做任何操作,但如果没有,则添加它并将属性放入集合中。如果在代码的不同部分完成这些步骤,那么定义一个函数来完成这些步骤可能是值得的。在
相关问题 更多 >
编程相关推荐