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?
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 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.