gpt4 book ai didi

python - 通用属性的 igraph 选择函数

转载 作者:太空宇宙 更新时间:2023-11-04 10:22:58 26 4
gpt4 key购买 nike

我正在通过关注 this tutorial 学习 igraph .

这是我以前不熟悉的教程中的语法:

# g is a Graph object
# g.vs are vertices of g
>>> g.vs.select(age_lt=30)
# this returns vertices which has "age" attribute less than 30

我需要一些更通用的东西。

更具体地说,我想获取属性 atr 小于 c 的顶点。例如,atrstringcint

我试过:

>>> atr = 'age'
>>> c = 30
>>> g.vs.select(atr + '_lt'= c)

但是,我得到一个SyntaxError:

SyntaxError: keyword can't be an expression

我不想手动做,比如:

>>> [v for v in g.vs if v[atr] < c]

因为我的图表很大

最佳答案

When the first parameter to select is a callable ,如果可调用返回 True,则选择顶点。

通过这种方式,您可以应用相对更复杂的查询。例如:

import igraph

G = igraph.Graph()
G.add_vertex("John", age=22)
G.add_vertex("Vilma", age=20)
G.add_edge("John", "Vilma")
vRes = G.vs.select(lambda x:x["name"]=="John" and x["age"]>20)
#Or, with query parameters as below
#someAttribute = "age"
#someValue = 20
#vRes = G.vs.select(lambda x:x[someAttribute] > someValue)

在上面的 lambda 中,参数 x 是一个 igraph::Vertex它提供对所有顶点属性的访问。

A similar interface存在以选择边。

希望这对您有所帮助。

关于python - 通用属性的 igraph 选择函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31192009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com