如何将NetworkX计算的营养级numpy数组转换为带标签节点列表?
解决方法
NetworkX中图的节点顺序和你通过营养级工具得到的numpy数组元素顺序是一一对应的,你可以直接将节点列表和数组配对成字典,格式就和nx.degree_centrality()返回的结果一致。
- 先获取图中所有节点的有序列表:
nodes = list(G.nodes()) - 假设你得到的营养级numpy数组名为
trophic_levels,直接用zip()把节点和对应值配对成字典:trophic_level_dict = dict(zip(nodes, trophic_levels))
这样trophic_level_dict就是键为节点名称、值为对应营养级的字典,和nx.degree_centrality()的输出格式完全一致。
额外技巧:将营养级添加为节点属性
如果需要把营养级直接作为图的节点属性保存,可以用NetworkX的set_node_attributes()方法:
nx.set_node_attributes(G, trophic_level_dict, 'trophic_level')
之后你可以通过G.nodes[node_name]['trophic_level']直接访问任意节点的营养级。
内容的提问来源于stack exchange,提问作者DrewGecko
相关产品推荐
相关产品推荐

