I'm new to graph tool and still not sure about how to use it
idiomatically.  So, why would one go through the process of creating a
property map, activating and deactivating a filter rather than just
creating a numpy mask and masking an array of edges. (I guess edges is an
iterator so masking it isn't as super simple and efficient as with an array)

Flavian, I dont see one either. Look at Graph.edges.__doc__
On Jul 16, 2014 10:47 AM, "Flavien Lambert" <[email protected]> wrote:

> That is a good question. I was wondering if so.
> On the same topic, I did not find the function for getting the edge from
> the edge index. There is one for vertices like vertex(n) but for edges?
> On 16 Jul 2014 23:22, "..." <[email protected]> wrote:
>
>> Are the indices in the array not the indices of the edges?  I'm not sure,
>> but I think you could be accessing edges based on indices you precomputed
>> rather than edge objects.
>> On Jul 16, 2014 9:51 AM, "Flavien Lambert" <[email protected]>
>> wrote:
>>
>>> Hi Elliott, I know that the get_array is very efficient but the thing is
>>> I have to know exactly what are the edges I am dealing with.
>>>
>>> To be more precise, I run loops over the shortest paths which I computed
>>> before and stored in a file. Therefore, each iteration makes access to a
>>> tiny fraction of the network and I must keep track of the edges involved.
>>> That is why I was giving the example of single access instead of global one
>>> though .a.
>>>
>>> Best,
>>> F.
>>> On 16 Jul 2014 22:04, "..." <[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
>>>>
>>>>
>>> _______________________________________________
>>> 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
>>
>>
> _______________________________________________
> 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

Reply via email to