[graph-tool] Getting all unique values in a vector-valued vertex property map

Tiago de Paula Peixoto tiago at skewed.de
Sat Feb 11 20:14:41 CET 2017


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 at skewed.de>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.skewed.de/pipermail/graph-tool/attachments/20170211/fe0c68b0/attachment.asc>


More information about the graph-tool mailing list