Я использую библиотеку Networkx pyhton.
Я пытался протестировать проект, который определяет следующую функцию:
def _set_up_p0(self, source):
""" Set up and return the 0th probability vector. """
p_0 = [0] * self.OG.number_of_nodes()
for source_id in source:
try:
# matrix columns are in the same order as nodes in original nx
# graph, so we can get the index of the source node from the OG
source_index = self.OG.nodes().index(source_id)
p_0[source_index] = 1 / float(len(source))
except ValueError:
sys.exit("Source node {} is not in original graph. Source: {}. Exiting.".format(
source_id, source))
return np.array(p_0)
Приведенный выше код генерирует исключение:
Traceback (most recent call last):
File "run_walker.py", line 80, in <module>
main(sys.argv)
File "run_walker.py", line 76, in main
wk.run_exp(seed_list, opts.restart_prob,opts.original_graph_prob, node_list)
File "./Python_directory/Walker/walker.py", line 57, in run_exp
p_0 = self._set_up_p0(source)
File "./Python_directory/Walker/walker.py", line 118, in _set_up_p0
print(self.OG.nodes().index(source_id))
AttributeError: 'NodeView' object has no attribute 'index'
на самом деле следующие две строки:
print source
print(self.OG.nodes())
мы получаем следующую ошибку:
['0', '1']
['1', '0', '3', '2', '4']
Поэтому, когда я вызываю функцию _set_up_p0, я получаю указанное выше исключение. Где моя ошибка, если вы ее обнаружили?