2016-04-14 6 views
1

Ich habe ein numpy 2D-Array mit den Werten, die die Gewichte der Kanten zwischen den Knoten darstellen. Die Matrix ist symmetrisch, und ich nehme die Diagonale als Null an. Ich finde kein Beispiel dafür, wie man diese Matrix in ein Grafikobjekt von igraph umwandeln kann. Ich habe den folgenden Ansatz versucht, aber es funktioniert nicht:Erstellen Sie eine gewichtete Grafik aus einem summierten 2D-Array als Adjazenzmatrix

import numpy as np 
import igraph 

def symmetrize(a): 
    return a + a.T - 2*np.diag(a.diagonal()) 

A = symmetrize(np.random.random((100,100))) 

G = igraph.Graph.Adjacency(A.tolist()) 

Antwort

3

Verwenden Graph.Weighted_Adjacency() wenn Sie die ursprünglichen Werte in der Matrix als Gewichte erhalten möchten. Die Gewichte werden als Kantenattribut weight an das Diagramm angehängt, das von igraph erstellt wird.