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


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