Obter o grau de cada nós em um grafo por Networkx em python
suponha que eu tenho um conjunto de dados como abaixo que mostra um grafo não direcionado:
1 2
1 3
1 4
3 5
3 6
7 8
8 9
10 11
tenho um script em python como este:
for s in ActorGraph.degree():
print(s)
isto é um dicionário consiste de chave e valor que as chaves são nomes de nó e os valores são grau de nós:
('9', 1)
('5', 1)
('11', 1)
('8', 2)
('6', 1)
('4', 1)
('10', 1)
('7', 1)
('2', 1)
('3', 3)
('1', 3)
em networkx a documentação sugere usar valores() para ter o grau de nós.
agora eu gosto de ter apenas chaves que são o grau de nós e eu uso esta parte do script mas não funciona e dizer object has no attribute 'values'
:
for s in ActorGraph.degree():
print(s.values())
Como posso fazer isso?
0
Author: pari khodaparast, 2017-11-22
1 answers
Está a usar a versão 2. 0 do networkx. Que mudou de usar um dict
Para G.degree()
para usar um dict-like (mas não dict) DegreeView
. Vereste guia .
Para ter os graus numa lista, pode usar uma compreensão da lista:
degrees = [val for (node, val) in G.degree()]
2
Author: rodgdor, 2017-11-23 09:30:33