当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX from_numpy_matrix用法及代码示例


本文简要介绍 networkx.convert_matrix.from_numpy_matrix 的用法。

用法:

from_numpy_matrix(A, parallel_edges=False, create_using=None)

从 numpy 矩阵返回一个图。

numpy 矩阵被解释为图的邻接矩阵。

参数

Anumpy 矩阵

图的邻接矩阵表示

parallel_edges布尔值

如果为真,create_using 是多重图,而A 是整数矩阵,则矩阵中的条目(i, j) 被解释为连接图中顶点ij 的平行边的数量。如果为 False,则邻接矩阵中的条目被解释为连接顶点的单个边的权重。

create_usingNetworkX 图形构造函数,可选(默认=nx.Graph)

要创建的图表类型。如果是图形实例,则在填充之前清除。

注意

对于有向图,明确提及create_using=nx.DiGraph,A 的条目 i,j 对应于从 i 到 j 的边。

如果 create_using networkx.MultiGraph networkx.MultiDiGraph parallel_edges 是 True ,并且 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 为True,则条目将被视为连接这两个顶点的平行边的数量:

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

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.convert_matrix.from_numpy_matrix。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。