Я использую graph-tool для вычисления некоторых показателей центральности.
from graph_tool.all import *
graph = Graph(directed=True)
Прежде чем сделать это, мне нужно инициализировать свойства ребра.Я делаю следующее:
weight = graph.new_edge_property('double')
graph.edge_properties['weight'] = weight
Добавление ребер (из кадра данных).Фрейм данных также имеет вес столбца.
edges = df[['source', 'target']].values
graph.add_edge_list(edges, hashed=True, eprops=[weight])
Я хочу инициализировать свойства ребра более эффективным способом, чем этот (я хочу избежать цикла):
weight = df[['weight']].values
for edge in graph.get_edges():
graph.edge_properties["weight"][edge] = weight[graph.edge_index[edge]]
Не могли бы вы предложить более эффективный способ инициализации свойств ребер? График построен из очень большого фрейма данных (30 миллионов строк).