Also, I can't check right now, but I'd guess the time difference is because integers are much more efficient to hash and compare than long strings. Just a barely educated guess.
-elliot On Jul 16, 2014 9:02 AM, "..." <[email protected]> wrote: > You know you can get the edges, vertices, and property maps as numpy > arrays by using the .a method. You should be able to do whatever you need > much faster with arrays than dictionaries. > On Jul 16, 2014 3:50 AM, "Flavien Lambert" <[email protected]> wrote: > >> 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 >> >>
_______________________________________________ graph-tool mailing list [email protected] http://lists.skewed.de/mailman/listinfo/graph-tool
