On 10.02.2017 16:26, gogurt wrote:
This might be a stupid question, but I have a graph with a vector<str>-valued vertex property map. That is, each vertex has a vector containing one or more strings encoding some metadata about the vertex.
I want to get a single 1d-list/array containing all the unique string values encoded in this property map, over all vertices in the graph. What's the best way to do that?
The simplest way is usually the best way. The question above is not really specific to graph-tool, if you think about it: vals = set() for v in g.vertices(): for x in prop[v]: vals.add(x)
I know that I'll have to use the get_2d_array() method on the property map, but I can't really understand what the documentation means when it says: "The parameter pos must be a sequence of integers which specifies the *indexes of the property values which will be used.*"
This does not give what you want at all. This function is about getting a two-dimensional array representation of vector-value property maps. The property map values can have different lengths, and hence to construct a 2D array the function requires the positions of the individual vectors that will be used to construct the matrix. Best, Tiago -- Tiago de Paula Peixoto <tiago@skewed.de>