當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python NetworkX to_pandas_adjacency用法及代碼示例


本文簡要介紹 networkx.convert_matrix.to_pandas_adjacency 的用法。

用法:

to_pandas_adjacency(G, nodelist=None, dtype=None, order=None, multigraph_weight=<built-in function sum>, weight='weight', nonedge=0.0)

將圖形鄰接矩陣作為 Pandas DataFrame 返回。

參數

G圖形

用於構建 Pandas DataFrame 的 NetworkX 圖。

nodelist列表,可選

行和列根據 nodelist 中的節點進行排序。如果nodelist 為無,則排序由 G.nodes() 生成。

multigraph_weight{sum, min, max},可選

確定如何處理多重圖中的權重的運算符。默認是對多條邊的權重求和。

weight字符串或無,可選

保存用於邊權重的數值的邊屬性。如果邊不具有該屬性,則使用值 1 代替。

nonedge浮點數,可選

對應於非邊的矩陣值通常設置為零。但是,如果存在對應於實際邊的矩陣值也為零,則這可能是不希望的。如果是這樣,人們可能更喜歡非邊具有一些其他值,例如 nan。

返回

df Pandas DataFrame

圖鄰接矩陣

注意

對於有向圖,條目 i,j 對應於從 i 到 j 的邊。

DataFrame 條目分配給權重邊屬性。當邊沒有權重屬性時,條目的值設置為數字 1。對於多個(平行)邊,條目的值由 ‘multigraph_weight’ 參數確定。默認是對每個平行邊的權重屬性求和。

nodelist 不包含 G 中的每個節點時,該矩陣由 G 的子圖構建,該子圖由 nodelist 中的節點誘導。

用於圖中自循環邊的約定是將對角矩陣條目值分配給邊的權重屬性(如果邊沒有權重屬性,則為數字 1)。如果需要將邊權重加倍的替代約定,則可以將生成的 Pandas DataFrame 修改如下:

>>> 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

相關用法


注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.convert_matrix.to_pandas_adjacency。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。