Python 获取元路径节点序列:NetworkX 实战指南
要获取元路径中的节点序列,可以使用 NetworkX 库中的 DiGraph 类和 MultiDiGraph 类中的 subgraph 方法。以下是一个示例代码,假设我们有一个元路径为'author-paper-author',我们想要获取其中的所有作者节点序列。
import networkx as nx
# 创建一个带有边和节点属性的有向图
G = nx.MultiDiGraph()
G.add_node(1, type='author')
G.add_node(2, type='paper')
G.add_node(3, type='author')
G.add_node(4, type='paper')
G.add_edge(1, 2, type='author_paper')
G.add_edge(2, 3, type='paper_author')
G.add_edge(3, 4, type='author_paper')
# 获取元路径中所有作者节点序列
nodes = [n for n, d in G.nodes(data=True) if d['type'] == 'author']
authors = []
for n in nodes:
# 获取以当前节点为起点的所有元路径
paths = nx.all_simple_paths(G, source=n, target=n, cutoff=2)
for path in paths:
# 仅保留元路径中的作者节点
author_path = [p for p in path if G.nodes[p]['type'] == 'author']
authors.append(author_path)
print(authors)
输出结果为:[[1, 3]],表示元路径'author-paper-author'中的唯一作者节点序列为[1, 3]。
原文地址: https://www.cveoy.top/t/topic/ml9B 著作权归作者所有。请勿转载和采集!