networkx.convert_matrix.to_numpy_array
的用法。用法:
to_numpy_array(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
是None
,則排序由G.nodes()
生成。- dtype:NumPy 數據類型,可選
用於初始化數組的 NumPy 數據類型。如果無,則使用 NumPy 默認值。如果
weight=None
可以構造 dtype,在這種情況下,dtype 字段名稱用於查找邊屬性。結果是一個結構化數組,其中 dtype 中的每個命名字段對應於該邊屬性的鄰接。有關詳細信息,請參閱示例。- order:{‘C’, ‘F’},可選
是否在內存中以 C 或 Fortran-contiguous(行或列)順序存儲多維數據。如果無,則使用 NumPy 默認值。
- multigraph_weight:可調用的,可選的
確定如何處理多重圖中的權重的函數。該函數應接受一係列權重並返回單個值。默認是對多條邊的權重求和。
- weight:字符串或無可選(默認 = ‘weight’)
保存用於邊權重的數值的邊屬性。如果邊不具有該屬性,則使用值 1 代替。如果使用結構化數據類型,
weight
必須是None
。- nonedge:數組 (默認 = 0.0)
用於表示鄰接矩陣中非邊的值。對應於非邊的數組值通常設置為零。但是,如果存在對應於實際邊的數組值也具有零值,則這可能是不可取的。如果是這樣,人們可能更喜歡非邊具有一些其他值,例如
nan
。
- A:NumPy ndarray
圖鄰接矩陣
- NetworkXError
如果
dtype
是結構化 dtype 並且G
是多圖- ValueError
如果
dtype
是結構化 dtype 而weight
不是None
參數:
返回:
拋出:
注意:
對於有向圖,條目
i, j
對應於從i
到j
的邊。鄰接矩陣中的條目由
weight
邊屬性給出。當一條邊沒有權重屬性時,條目的值設置為數字 1。對於多個(平行)邊,條目的值由multigraph_weight
參數確定。默認是對每個平行邊的權重屬性求和。當
nodelist
不包含G
中的每個節點時,鄰接矩陣由G
的子圖構建,該子圖由nodelist
中的節點誘導。用於圖中自循環邊的約定是將對角數組條目值分配給邊的權重屬性(如果邊沒有權重屬性,則為數字 1)。如果需要將邊權重加倍的替代約定,則可以將生成的 NumPy 數組修改如下:
>>> import numpy as np >>> G = nx.Graph([(1, 1)]) >>> A = nx.to_numpy_array(G) >>> A array([[1.]]) >>> A[np.diag_indices_from(A)] *= 2 >>> A array([[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_array(G, nodelist=[0, 1, 2]) array([[0., 2., 0.], [1., 0., 0.], [0., 0., 4.]])
此函數還可用於為具有結構化 dtype 的多個邊屬性創建鄰接矩陣:
>>> G = nx.Graph() >>> G.add_edge(0, 1, weight=10) >>> G.add_edge(1, 2, cost=5) >>> G.add_edge(2, 3, weight=3, cost=-4.0) >>> dtype = np.dtype([("weight", int), ("cost", float)]) >>> A = nx.to_numpy_array(G, dtype=dtype, weight=None) >>> A["weight"] array([[ 0, 10, 0, 0], [10, 0, 1, 0], [ 0, 1, 0, 3], [ 0, 0, 3, 0]]) >>> A["cost"] array([[ 0., 1., 0., 0.], [ 1., 0., 5., 0.], [ 0., 5., 0., -4.], [ 0., 0., -4., 0.]])
相關用法
- Python NetworkX to_numpy_recarray用法及代碼示例
- Python NetworkX to_numpy_matrix用法及代碼示例
- Python NetworkX to_nested_tuple用法及代碼示例
- Python NetworkX to_networkx_graph用法及代碼示例
- Python NetworkX to_prufer_sequence用法及代碼示例
- Python NetworkX to_dict_of_dicts用法及代碼示例
- Python NetworkX to_scipy_sparse_array用法及代碼示例
- Python NetworkX to_pydot用法及代碼示例
- Python NetworkX to_vertex_cover用法及代碼示例
- Python NetworkX to_sparse6_bytes用法及代碼示例
- Python NetworkX to_graph6_bytes用法及代碼示例
- Python NetworkX to_pandas_adjacency用法及代碼示例
- Python NetworkX to_agraph用法及代碼示例
- Python NetworkX to_scipy_sparse_matrix用法及代碼示例
- Python NetworkX to_pandas_edgelist用法及代碼示例
- Python NetworkX topological_generations用法及代碼示例
- Python NetworkX topological_sort用法及代碼示例
- Python NetworkX transitive_closure_dag用法及代碼示例
- Python NetworkX tree_graph用法及代碼示例
- Python NetworkX threshold_accepting_tsp用法及代碼示例
- Python NetworkX tensor_product用法及代碼示例
- Python NetworkX transitivity用法及代碼示例
- Python NetworkX triangles用法及代碼示例
- Python NetworkX triad_graph用法及代碼示例
- Python NetworkX transitive_closure用法及代碼示例
注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.convert_matrix.to_numpy_array。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。