Python igraph 无法在无向图中找到边
Python igraph cant find edges in an undirected graph
我在 Python 3 中有这个简单的代码,使用 igraph 来 return 我添加到无向图中的边。
from igraph import *
g = Graph()
g.add_vertices(3)
g.add_edges([(0,1), (1,2)])
# display(plot(g))
edge=g.es.find(_source=1, _target=0)
但是当我使用函数 graph.es.find() 时,它给了我一个错误而不是 returning 边缘。它说有 "no such edge".
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-14-4182287b1986> in <module>
4 g.add_edges([(0,1), (1,2)])
5 # display(plot(g))
----> 6 edge=g.es.find(_source=1, _target=0)
E:\Softwares\Anaconda\lib\site-packages\igraph\__init__.py in find(self, *args, **kwds)
3615 if es:
3616 return es[0]
-> 3617 raise ValueError("no such edge")
3618
3619 def select(self, *args, **kwds):
ValueError: no such edge
但是,如果我按照输入时的相同顺序设置源和目标,它会 return 边缘。在这种情况下,源 = 0,目标 = 1
我的猜测是它不是真正的无向图。
我的问题是,即使我在 g.es.find() 函数中切换源节点和目标节点,我如何获得一个真正的无向图,其中 return 是边缘,因为它应该用于无向图?
用这个来获得优势:
from igraph import *
g = Graph()
g.add_vertices(3)
g.add_edges([(0,1), (1,2)])
#get the ID
g.get_eid(0,1)
0
#get the edge list
g.get_edgelist()
[(0, 1), (1, 2)]
#get the first edge from the edge list
g.get_edgelist()[0]
(0, 1)
最后验证一下是不是定向使用g.is_directed()
我在 Python 3 中有这个简单的代码,使用 igraph 来 return 我添加到无向图中的边。
from igraph import *
g = Graph()
g.add_vertices(3)
g.add_edges([(0,1), (1,2)])
# display(plot(g))
edge=g.es.find(_source=1, _target=0)
但是当我使用函数 graph.es.find() 时,它给了我一个错误而不是 returning 边缘。它说有 "no such edge".
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-14-4182287b1986> in <module>
4 g.add_edges([(0,1), (1,2)])
5 # display(plot(g))
----> 6 edge=g.es.find(_source=1, _target=0)
E:\Softwares\Anaconda\lib\site-packages\igraph\__init__.py in find(self, *args, **kwds)
3615 if es:
3616 return es[0]
-> 3617 raise ValueError("no such edge")
3618
3619 def select(self, *args, **kwds):
ValueError: no such edge
但是,如果我按照输入时的相同顺序设置源和目标,它会 return 边缘。在这种情况下,源 = 0,目标 = 1
我的猜测是它不是真正的无向图。
我的问题是,即使我在 g.es.find() 函数中切换源节点和目标节点,我如何获得一个真正的无向图,其中 return 是边缘,因为它应该用于无向图?
用这个来获得优势:
from igraph import *
g = Graph()
g.add_vertices(3)
g.add_edges([(0,1), (1,2)])
#get the ID
g.get_eid(0,1)
0
#get the edge list
g.get_edgelist()
[(0, 1), (1, 2)]
#get the first edge from the edge list
g.get_edgelist()[0]
(0, 1)
最后验证一下是不是定向使用g.is_directed()