Networkx ValueError: None не может быть узломPython

Программы на Python
Anonymous
Networkx ValueError: None не может быть узлом

Сообщение Anonymous »

Я пытаюсь реализовать модель Барабаси-Альберта, но получаю ошибку ValueError «Нет не может быть узлом» в network.add_edge(new_node,node). Я попытался отфильтровать список, чтобы в нем не было элементов None, но, похоже, это не сработало. Вот код:
def ba_network(N, m, seed_net_size=4):
# Generate initial small seed network (clique of seedsize nodes)
network = nx.complete_graph(seed_net_size)

for i in range(N):
degrees = [value for (node, value) in network.degree()]
sum_of_degrees = sum(degrees)
degrees_prob = [float(value)/sum_of_degrees for (node, value) in network.degree()]
chosen = np.random.choice(network, m, p=degrees_prob,replace=False)
edges = []
new_node = network.add_node(1)
nodes = list(filter(lambda node: node is not None, chosen))
for node in nodes:
network.add_edge(new_node,node)

return network


Подробнее здесь: https://stackoverflow.com/questions/739 ... -be-a-node

Вернуться в «Python»