Hi everyone, to compute some functions I needed to loop over a bunch of
edges. I realized that the call to property maps seems slow compare to a
dictionary. I am a bit surprised since I was told - I am not an expert in
python - that a query in a dictionary was already. So I was wondering if I
made a mistake in using graph_tool. Following is an example of comparison.
Best,
F.


In [3]:

_network = gt.load_graph(_dataFolder + 'networkLTA-2.0-scc.xml')

_network = gt.load_graph(_dataFolder + 'networkLTA-2.0-scc.xml')

In [4]:

_network.list_properties()

destination    (vertex)  (type: long double)
_graphml_vertex_id (vertex)  (type: string)
origin         (vertex)  (type: long double)
_graphml_edge_id (edge)    (type: string)
speed          (edge)    (type: long double)
name           (edge)    (type: string)
time           (edge)    (type: long double)

In [5]:

_edgeIds = _network.edge_properties['_graphml_edge_id']

_times = _network.edge_properties["time"]

_speeds = _network.edge_properties["speed"]



_origin = _network.vertex_properties['origin']

_destination = _network.vertex_properties['destination']

In [8]:

_edges = [_e for _e in _network.edges()]

%time for _e in _network.edges() : a = _speeds[_e]



_speedDict = {}

for _e in _edges :

    _speedDict[_network.edge_index[_e]] = _speeds[_e]

_indexes = [_network.edge_index[_e] for _e in _network.edges()]

%time for _n in _indexes : a = _speedDict[_n]

CPU times: user 102 ms, sys: 5 ms, total: 107 ms
Wall time: 103 ms
CPU times: user 2 ms, sys: 0 ns, total: 2 ms
Wall time: 1.94 ms
_______________________________________________
graph-tool mailing list
[email protected]
http://lists.skewed.de/mailman/listinfo/graph-tool

Reply via email to