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


Python NetworkX to_numpy_matrix用法及代碼示例


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

用法:

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

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

參數

G圖形

NetworkX 圖用於構造NumPy 矩陣。

nodelist列表,可選

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

dtypeNumPy 數據類型,可選

用於初始化數組的有效單一 NumPy 數據類型。這必須是簡單類型,例如 int 或 numpy.float64,而不是複合數據類型(請參閱 to_numpy_recarray)如果為 None,則使用 NumPy 默認值。

order{‘C’, ‘F’},可選

是否在內存中以 C 或 Fortran-contiguous(行或列)順序存儲多維數據。如果無,則使用 NumPy 默認值。

multigraph_weight{sum, min, max},可選

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

weight字符串或無可選(默認 = ‘weight’)

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

nonedge浮點數(默認 = 0.0)

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

返回

MNumPy 矩陣

圖鄰接矩陣

注意

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

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

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

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

>>> import numpy as np
>>> G = nx.Graph([(1, 1)])
>>> A = nx.to_numpy_matrix(G)
>>> A
matrix([[1.]])
>>> A[np.diag_indices_from(A)] *= 2
>>> A
matrix([[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_numpy_matrix(G, nodelist=[0, 1, 2])
matrix([[0., 2., 0.],
        [1., 0., 0.],
        [0., 0., 4.]])

相關用法


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