Невозможно импортировать неориентированный граф из файла EdgeList в igraph-python

Я использую функцию Graph.Read_Ncol igraph-python. Ниже мой код для чтения данных.

def loadData(filename):
    data = None
    data = ig.Graph.Read_Ncol(filename, directed=False)
    return data

Я использую этот набор данных из группы SNAP: https://snap.stanford.edu/data/ca-GrQc.html Как уже упоминалось, набор данных содержит 14496 ребер и 5242 узла.

Однако когда я делаю data.summary() на своем графике, я получаю следующий результат.

>>> data.summary()
'IGRAPH UN-- 5242 28980 -- \n+ attr: name (v)'

Даже когда я делаю data.to_undirected() и снова пытаюсь data.summary(), я получаю тот же результат, что и выше.

>>> data.to_undirected()
>>> data.summary()
'IGRAPH UN-- 5242 28980 -- \n+ attr: name (v)'

Когда я загружаю график с помощью библиотеки SNAP неориентированным образом, я получаю правильный результат.

def loadData(filename):
    data = None
    data = snap.LoadEdgeList(snap.PUNGraph,filename,0,1)

    return data

Что я делаю неправильно? Или есть проблема с igraph API?


person Shubhanshu Mishra    schedule 24.09.2014    source источник


Ответы (1)


Большинство ребер появляются в вашей сети дважды, и igraphs добавляет их как несколько ребер. Вызовите simplify() на графе, чтобы удалить эти множественные ребра. http://igraph.org/python/doc/igraph.GraphBase-class.html#simplify

person Gabor Csardi    schedule 24.09.2014