从graph-tool,python接口中的邻接矩阵创建加权图

adr*_*rin 8 python graph graph-tool

我应该如何使用python中的图形工具从邻接矩阵中创建图形?假设我们有adj矩阵作为邻接矩阵.

我现在做的是这样的:

        g = graph_tool.Graph(directed = False)
        g.add_vertex(len(adj))
        edge_weights = g.new_edge_property('double')
        for i in range(adj.shape[0]):
            for j in range(adj.shape[1]):
                if i > j and adj[i,j] != 0:
                    e = g.add_edge(i, j)
                    edge_weights[e] = adj[i,j]
Run Code Online (Sandbox Code Playgroud)

但它感觉不对,我们有更好的解决方案吗?

(我想这是一个合适的标签graph-tool,但是我无法添加它,某些具有足够权限的人可以制作标签?)

Tia*_*oto 10

图形工具现在包括一个向图形添加边缘列表的功能.你现在可以做,例如:

adj = numpy.random.randint(0, 2, (100, 100)) # a random directed graph
g = Graph()
g.add_edge_list(transpose(adj.nonzero()))
Run Code Online (Sandbox Code Playgroud)