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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。