我有一个邻接矩阵存储为pandas.DataFrame
:
node_names = ['A', 'B', 'C']
a = pd.DataFrame([[1,2,3],[3,1,1],[4,0,2]],
index=node_names, columns=node_names)
a_numpy = a.as_matrix()
我想从pandas
或numpy
邻接矩阵创建一个igraph.Graph
。在理想情况下,节点将按预期命名。
这可能吗?The tutorial似乎对这个问题保持沉默。
Tags:
严格地说,adjacency matrix是布尔型的,1表示存在连接,0表示不存在连接。由于
a_numpy
矩阵中的许多值都是>;1,我将假定它们对应于图中的边权重。在igraph中,您可以使用^{} 从邻接矩阵创建图,而不必使用
zip
。当使用加权邻接矩阵并将其存储在np.array
或pd.DataFrame
中时,需要注意一些事情。igraph.Graph.Adjacency
不能将np.array
作为参数,但是使用^{邻接矩阵中的整数被解释为节点间的边数而不是权值,用邻接作为布尔值求解。
操作方法示例:
您可以使用^{} 通过以下方式重建相邻数据帧:
相关问题 更多 >
编程相关推荐