图形工具:如何访问 add_edge_list 返回的顶点值 属性 地图?
Graph-tool: How do you access the vertex value property map returned by add_edge_list?
我正在尝试开始使用图形工具进行我公司的分析,作为 networkx 的更高性能替代品。
我已经设法弄清楚了很多事情(绘图、获得中心性、学位等),但有一件事我无法弄清楚。如何访问通过 add_edge_list 加载的原始顶点值?我需要这种能力才能按值找到特定的顶点,例如找到它的连接组件或其他一些结构。
根据the documentation for add_edge_list:
Optionally, if hashed == True, the vertex values in the edge list are not assumed to correspond to vertex indices directly. In this case they will be mapped to vertex indices according to the order in which they are encountered, and a vertex property map with the vertex values is returned.
我的目标是将 CSV 加载到 pandas 数据框中,对数据框进行一些处理以使其成为边列表格式,然后将其加载到图中。
到目前为止,这是我的代码:
import graph_tool as gt
import pandas as pd
df = pd.read_csv('data/2019-data.csv')
G = gt.Graph(directed=False)
props = G.add_edge_list(df[['vertex1', 'vertex2']].values, hashed=True)
这可以很好地填充图表,但 props returns 是空的。
len(G.get_vertices())
183298
len(props.a)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: object of type 'NoneType' has no len()
有人知道这是怎么回事吗?
我 运行 在图形工具 2.29 上的 Python 3.7 虚拟环境中。
注意:有一个类似的问题,但接受的答案对我不起作用。
谢谢!
已解决!根据 ,您可以像列表一样通过顶点 ID 为 prop 变量建立索引,甚至可以创建映射字典以进行快速查找。
例如
mapping_dict = {props[i]: i for i in range(G.num_vertices())}
虽然我不完全理解为什么 props.a
没有 return 任何东西,因为它是一个 VertexPropertyMap...
我正在尝试开始使用图形工具进行我公司的分析,作为 networkx 的更高性能替代品。 我已经设法弄清楚了很多事情(绘图、获得中心性、学位等),但有一件事我无法弄清楚。如何访问通过 add_edge_list 加载的原始顶点值?我需要这种能力才能按值找到特定的顶点,例如找到它的连接组件或其他一些结构。
根据the documentation for add_edge_list:
Optionally, if hashed == True, the vertex values in the edge list are not assumed to correspond to vertex indices directly. In this case they will be mapped to vertex indices according to the order in which they are encountered, and a vertex property map with the vertex values is returned.
我的目标是将 CSV 加载到 pandas 数据框中,对数据框进行一些处理以使其成为边列表格式,然后将其加载到图中。 到目前为止,这是我的代码:
import graph_tool as gt
import pandas as pd
df = pd.read_csv('data/2019-data.csv')
G = gt.Graph(directed=False)
props = G.add_edge_list(df[['vertex1', 'vertex2']].values, hashed=True)
这可以很好地填充图表,但 props returns 是空的。
len(G.get_vertices())
183298
len(props.a)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: object of type 'NoneType' has no len()
有人知道这是怎么回事吗?
我 运行 在图形工具 2.29 上的 Python 3.7 虚拟环境中。
注意:有一个类似的问题
谢谢!
已解决!根据
例如
mapping_dict = {props[i]: i for i in range(G.num_vertices())}
虽然我不完全理解为什么 props.a
没有 return 任何东西,因为它是一个 VertexPropertyMap...