Python: считывание матрицы смежности из файла для igraph - PullRequest
0 голосов
/ 28 июня 2018

У меня очень простой вопрос, но я действительно не могу найти его в Интернете!

У меня есть матрица смежности взвешенно-ориентированного графа, которая выглядит как:

1    2    3    4    
5    2    4    6  
3    5    6    2
4    6    7    8

поэтому элемент столбца i и строки j показывает вес ссылки между узлами i и j.

Как я могу прочитать этот файл (который может быть в формате txt или csv) в качестве матрицы для использования в igraph? Я хочу узнать количество кластеров. Итак, я хочу что-то вроде этого: g.community_multilevel () если g моя матрица.

1 Ответ

0 голосов
/ 07 июля 2018

Я предполагаю, что на вашей машине уже установлены igraph и cairo. Если нет, и вы находитесь на Mac см. этот пост . Вы хотите использовать метод Read_Adjacency(), который задокументирован здесь . Чтобы читать на вашем графике, я использовал что-то вроде этого кода Python:

import igraph 
from igraph import * 
g=Graph.Read_Adjacency(f="soAdj",sep=None, comment_char='#',attribute="weighted")
plot(g, "readAdjSoExample.pdf",layout="circle")

и сюжет выдаст что-то вроде этого: enter image description here

и вы можете получить доступ к весам, чтобы убедиться, что они были правильно прочитаны, с помощью команды, такой как: g.es[3], которая дает результат igraph.Edge(<igraph.Graph object at 0x10f614bf0>, 3, {'weighted': 4.0}) В упомянутом тексте OP и в формате CSV разница будет в том, какой разделитель вы включаете в качестве строки в аргумент sep= метода.

...