删除特定权重的链接
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))
我正在使用 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))