这是我的代码:
import graph_tool.all as gt
print gt.__version__
g1 = gt.Graph()
g1.add_vertex(5)
g1.add_edge_list([(0,1),(1,2),(2,3),(3,4)])
g2 = gt.Graph()
#g2.add_vertex(3)
#g2.add_edge_list([(0,1),(1,2)])
g1.vp['prop'] = g1.new_vp('int', 1)
g1.ep['eprop'] = g1.new_ep('bool', False)
g1.ep['eprop'][list(g1.edges())[0]]=True
g1.set_edge_filter(g1.ep['eprop'], inverted=True)
#g2.vp['prop'] = g2.new_vp('int', 2)
ug = gt.graph_union(g1, g2, intersection = None, include = True, internal_props=True)
print ug
ug.list_properties()
for e in ug.edges():
print e, ug.ep['eprop'][e]
我得到以下输出:
2.20(提交f6ef9990,星期五1月27日16:40:08 2017 +0000)
追溯(最近的呼叫最后):
文件" Untitled.py",第17行,在 ug = gt.graph_union(g1,g2,intersection = None,include = True,internal_props = True)
文件" /usr/local/lib/python2.7/site-packages/graph_tool/generation/ init .py",第1192行,在graph_union中 vmask.a = not vmask.a
ValueError:具有多个元素的数组的真值是不明确的。使用a.any()或a.all()
我认为这可能是类似于this bug的错误,特别是因为在gt.generation__init__.py
第1185行修复了错误:emask.a = numpy.logical_not(emask.a)
,而第1192行则包含旧的vmask.a = not vmask.a
。任何人都可以确认这是一个错误还是我做错了什么?
答案 0 :(得分:0)
是的,这是一个错误,并已在git中修复。
顺便说一句,最好将此类问题报告给https://graph-tool.skewed.de/issues或图表工具邮件列表中的问题跟踪器,而不是堆栈溢出,以确保更快速的操作。