to_pandas_adjacency#

to_pandas_adjacency(G, nodelist=None, dtype=None, order=None, multigraph_weight=<built-in function sum>, weight='weight', nonedge=0.0)[源代码]#

以熊猫数据帧的形式返回图形邻接矩阵。

参数
G图表

用于构建Pandas DataFrame的网络X图。

nodelist列表,可选

行和列根据中的节点进行排序 nodelist 。如果 nodelist 为NONE,则排序由G.Nodes()生成。

multigraph_weight{sum,min,max},可选

一种运算符,用于确定如何处理多图中的权重。默认情况下,对多条边的权重求和。

weight字符串或无,可选

保存用于边权重的数值的边属性。如果边没有该属性,则改用值1。

nonedge浮动,可选

对应于非边的矩阵值通常被设置为零。但是,如果与实际边相对应的矩阵值也具有零值,则这可能不是所需的。如果是这样的话,您可能希望非边具有其他值,例如NaN。

返回
df熊猫数据框

图邻接矩阵

笔记

对于有向图,条目i,j对应于从i到j的边。

数据帧条目被分配给weight edge属性。当边没有权重属性时,条目的值设置为数字1。对于多条(平行)边,条目的值由“多重图权重”参数确定。默认值是为每个平行边求和权重属性。

什么时候? nodelist 不包含中的每个节点 G ,该矩阵是从 G 这是由中的节点引起的 nodelist .

在图中用于自循环边的约定是将对角矩阵入口值指定给边的权重属性(如果边没有权重属性,则指定数字1)。如果需要将边缘权重加倍的备用约定,则可以按照以下方式修改生成的熊猫数据帧:

>>> import pandas as pd
>>> pd.options.display.max_columns = 20
>>> import numpy as np
>>> G = nx.Graph([(1, 1)])
>>> df = nx.to_pandas_adjacency(G, dtype=int)
>>> df
   1
1  1
>>> df.values[np.diag_indices_from(df)] *= 2
>>> df
   1
1  2

实例

>>> G = nx.MultiDiGraph()
>>> G.add_edge(0, 1, weight=2)
0
>>> G.add_edge(1, 0)
0
>>> G.add_edge(2, 2, weight=3)
0
>>> G.add_edge(2, 2)
1
>>> nx.to_pandas_adjacency(G, nodelist=[0, 1, 2], dtype=int)
   0  1  2
0  0  2  0
1  1  0  0
2  0  0  4