Как получить значения из определенных атрибутов узла в NetworkX с Python
Я работаю над групповым проектом, и нам нужно создать список всех значений из определенного атрибута узла на графике, над которым мы работаем. У каждого узла есть 6 атрибутов, нам просто нужен список всех значений для одного из наших атрибутов.
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)
Я думаю, что это все уместно. Предварительно загруженные данные имеют 5 атрибутов, мы добавили 6-й, мы просто хотим иметь возможность получить значения для определенного атрибута, например, составить список всех значений для атрибута RaceN.
Идея состоит в том, что у нас есть список целых чисел, для которых мы можем вызвать функцию sp.bincount ().