from_numpy_matrix#
- from_numpy_matrix(A, parallel_edges=False, create_using=None)[源代码]#
返回numpy矩阵中的图形。
numpy矩阵被解释为图形的邻接矩阵。
- 参数
- ANumy矩阵
图的邻接矩阵表示法
- parallel_edges布尔值
如果为True,
create_using
是一个多重图,并且A
是一个整数矩阵,然后输入 (i、j) 在矩阵中被解释为连接顶点的平行边的数目 i 和 j 在图表中。如果为False,则邻接矩阵中的条目将被解释为连接顶点的单个边的权重。- create_usingNetworkX图形构造函数,可选(默认=nx.Graph)
要创建的图表类型。如果是图表实例,则在填充之前清除。
笔记
对于有向图,明确提到createu using=有向图,并且A的条目i,j对应于从i到j的一条边。
如果
create_using
是networkx.MultiGraph
或networkx.MultiDiGraph
,parallel_edges
是真的,并且A
属于类型int
,则此函数返回一个多图表(由create_using
)有平行边缘。如果
create_using
表示一个无向多重图,然后仅表示矩阵上三角所指示的边A
将添加到图表中。如果numpy矩阵对于每个矩阵条目都有一个单独的数据类型,那么它将被转换为适当的python数据类型。
如果numpy矩阵具有用户指定的复合数据类型,则数据字段的名称将用作生成的networkx图中的属性键。
实例
边缘上的简单整数权重:
>>> import numpy as np >>> A = np.array([[1, 1], [2, 1]]) >>> G = nx.from_numpy_matrix(A)
如果
create_using
指示多图表,并且矩阵只有整数项,并且parallel_edges
如果为false,则条目将被视为连接节点的边的权重(不创建平行边):>>> A = np.array([[1, 1], [1, 2]]) >>> G = nx.from_numpy_matrix(A, create_using=nx.MultiGraph) >>> G[1][1] AtlasView({0: {'weight': 2}})
如果
create_using
指示多图表,并且矩阵只有整数项,并且parallel_edges
如果为真,则条目将被视为连接这两个顶点的平行边数:>>> A = np.array([[1, 1], [1, 2]]) >>> temp = nx.MultiGraph() >>> G = nx.from_numpy_matrix(A, parallel_edges=True, create_using=temp) >>> G[1][1] AtlasView({0: {'weight': 1}, 1: {'weight': 1}})
边缘上用户定义的复合数据类型:
>>> dt = [("weight", float), ("cost", int)] >>> A = np.array([[(1.0, 2)]], dtype=dt) >>> G = nx.from_numpy_matrix(A) >>> list(G.edges()) [(0, 0)] >>> G[0][0]["cost"] 2 >>> G[0][0]["weight"] 1.0