删除特定权重的链接

Removing links over a specific weight

我正在使用 NetworkX,我已经从邻接矩阵构建了一个加权图。

现在我想删除所有权重低于特定阈值的边。我如何识别这些链接?

以下是我构建图表的方式:

G = nx.from_numpy_matrix(weighted, parallel_edges=False)

现在我想使用该条件删除边缘,编写如下内容,但对于边缘:

[node for node, degree in dict(G.degree()).items() if degree > 2]

但是我在写 G.edges(i).data() 时出错,所以我无法写出要评估的条件。

你可以先用nx.get_edge_attributes and then remove the one over a certain weight with remove_edges_from得到带权重的边。

示例。

>>> weighted = np.random.randint(10, size=(3, 3))
>>> G = nx.from_numpy_matrix(weighted, parallel_edges=False)
>>> edge_weights = nx.get_edge_attributes(G,'weight')
>>> edge_weights
{(0, 0): 2, (0, 2): 8, (0, 1): 4, (1, 1): 1, (1, 2): 4, (2, 2): 2}
>>> G.remove_edges_from((e for e, w in edge_weights.items() if w > 5))