在 iGraph 中,您可以使用 igraph.Graph.Adjacency
从邻接矩阵创建一个图,而不需要使用 zip
。 当使用加权邻接矩阵并将其存储在 np.array
或 pd.DataFrame
中时,需要注意一些事情。
以下是一个示例:
import igraph
import pandas as pd
node_names = ['A', 'B', 'C']
a = pd.DataFrame([[1,2,3],[3,1,1],[4,0,2]], index=node_names, columns=node_names)
A = a.values
g = igraph.Graph.Adjacency((A > 0).tolist())
g.es['weight'] = A[A.nonzero()]
g.vs['label'] = node_names
您可以使用get_adjacency
方法重建邻接数据框:
df_from_g = pd.DataFrame(g.get_adjacency(attribute='weight').data,
columns=g.vs['label'], index=g.vs['label'])
(df_from_g == a).all().all()
a_numpy
中的值实际上是什么意思?它们是连接权重吗? - ali_m