Cómo obtener valores de atributos de nodo específicos en NetworkX con Python

Estoy trabajando en un proyecto de grupo y necesitamos crear una lista de todos los valores de un atributo de nodo específico en el gráfico en el que estamos trabajando. Cada nodo tiene 6 atributos, solo necesitamos una lista de todos los valores para uno de nuestros atributos.

import networkx as nx import scipy as sp import matplotlib.pyplot as plt %matplotlib inline import urllib url = "http://josquin.cti.depaul.edu/~rburke/courses/s14/fmh.graphml" sock = urllib.urlopen(url) # open URL fmh = nx.read_graphml(sock) for i in fmh: if fmh.node[i]['Race'] == 'Asian': fmh.add_node(i, RaceN=0) elif fmh.node[i]['Race'] == 'Black': fmh.add_node(i, RaceN=1) elif fmh.node[i]['Race'] == 'Hisp': fmh.add_node(i, RaceN=2) elif fmh.node[i]['Race'] == 'NatAm': fmh.add_node(i, RaceN=3) elif fmh.node[i]['Race'] == 'Other': fmh.add_node(i, RaceN=4) elif fmh.node[i]['Race'] == 'White': fmh.add_node(i, RaceN=5) for i in fmh: if fmh.node[i]['Sex'] == 'F': fmh.add_node(i, SexN=0) elif fmh.node[i]['Sex'] == 'M': fmh.add_node(i, SexN=1) 

Creo que eso es todo pertinente. Los datos precargados tienen 5 atributos, agregamos un 6, solo queremos poder tomar los valores de un atributo específico, como, por ejemplo, hacer una lista de todos los valores para el atributo RaceN.

La idea es que tenemos una lista de enteros a los que podemos llamar la función sp.bincount ().

Tu código no se ejecutará sin más información. Creo que quieres algo como la función networkx.get_node_attributes ():

 In [1]: import networkx as nx In [2]: G = nx.Graph() In [3]: G.add_node(1,profit=17) In [4]: G.add_node(2,profit=42) In [5]: a = nx.get_node_attributes(G,'profit') In [6]: a.items() Out[6]: [(1, 17), (2, 42)]