2017-02-11 4 views
1

Ich versuche Adjazenzmatrix von Datei mit Erweiterung .dat zu lesen, in denen Daten wiePython: lesen Adjazenzmatrix von Datei mit NetworkX

0 1 1 1 1 1 
1 0 1 1 1 1 
1 1 0 1 1 1 
1 1 1 0 1 1 
1 1 1 1 0 1 
1 1 1 1 1 0 

sehen (es ist nur ein Teil der Datei gibt es 128 Strings). Ich benutze networkx-Datei zu lesen und im nächsten Operationen zu tun, aber ich benutze

g = nx.read_adjlist("adjacency_matrix/Cont_matr-1.dat") 
print(g.number_of_nodes()) 

nach der Lektüre ich 2 bekommen. Aber diese Nummer mehr als 2. Vielleicht ist es falsch, Datei zu lesen?

Antwort

3

Sie lesen es als Adjazenzliste, nicht als Adjazenzmatrix. Es werden also nur die ersten beiden Einträge jeder Zeile als Knoten betrachtet.

Also die erste Zeile wird als eine Kante zwischen 0 und 1 interpretiert (mit zusätzlichen Informationen angeheftet). Die zweite Zeile ist als Kante interpretiert zwischen 1 und 0. Die dritte Zeile ist eine Kante zwischen 1 und 1. Etc.

Sie Ihre Matrix in eine Matrix numpy umwandeln kann und dann from_numpy_matrix verwenden es in zu lesen.

+0

Danke! Nun, das ist in Ordnung) –

Verwandte Themen