Python-IGraph:仅当连接边具有某些属性时才查找节点的邻居

时间:2015-07-09 07:40:47

标签: python graph igraph networkx network-analysis

是否有这样的功能在python-igraph预制(或者也是networkx,所以我可以让它适应igraph中的工作),还是我必须实现它?

如果它还没有存在,我会像那样支出:

  1. 获取源节点的事件边缘
  2. 仅保留符合属性条件的边(例如,只有具有属性“major”的边缘)
  3. 对于2.的边缘,使用边缘的target属性查找目标节点,如here所述
  4. 欢迎任何改进!

2 个答案:

答案 0 :(得分:3)

igraph中没有预制功能,但您可以尝试以下内容:

def filtered_neighbors(graph, node, condition):
    return [ \
        edge.source if edge.target == node else edge.source \
        for edge in graph.es[graph.incident(node)] \
        if condition(edge)
    ]

condition必须是Python可调用的,它可以获取边缘并返回是否可以接受边缘。

答案 1 :(得分:1)

尝试列表理解。

step