当前位置: 首页 > 面试题库 >

Networkx:将多图转换为具有加权边的简单图

夏侯宏旷
2023-03-14
问题内容

我有一个多图对象,并想将其转换为带有加权边的简单图对象。我浏览了networkx文档,但似乎找不到内置函数来实现此目的。我只是想知道是否有人知道networkx中的内置功能可以实现此目标。我看了to_directed()和to_undirected()函数,但它们不符合我的目标。


问题答案:

这是一种通过对权重求和从加权多图创建加权图的方法:

import networkx as nx
# weighted MultiGraph
M = nx.MultiGraph()
M.add_edge(1,2,weight=7)
M.add_edge(1,2,weight=19)
M.add_edge(2,3,weight=42)

# create weighted graph from M
G = nx.Graph()
for u,v,data in M.edges(data=True):
    w = data['weight'] if 'weight' in data else 1.0
    if G.has_edge(u,v):
        G[u][v]['weight'] += w
    else:
        G.add_edge(u, v, weight=w)

print(G.edges(data=True))
# [(1, 2, {'weight': 26}), (2, 3, {'weight': 42})]


 类似资料:
  • 问题内容: 我在玩networkx(Python中的图形库),发现文档说PageRank算法在评分时考虑了边缘权重,但是我想知道更大的边缘权重是更好还是更低的权重呢? 问题答案: 不久,较大的权重对于传入的节点更好。 PageRank在有向加权图上工作。如果页面A具有到页面B的链接,则页面B的得分会上升,即页面B(节点)输入的次数越多,其得分就越高。 有关更多详细信息,请参见PageRank上的W

  • 问题内容: 我有一个程序,需要使用Image Magick将PDF转换为图像。我使用包来做到这一点: 我得到的错误是: 其中最重要的是: 我认为这是因为ImageMagick无权访问PDF。现在应该怎么办?我在Linux服务器上。任何帮助表示赞赏。 问题答案: emcconville是正确的。更具体地说,编辑Imagemagick policy.xml文件以取消注释此行: 并将其从rights =

  • 我有一个程序,在这个程序中,我需要使用image Magick将PDF转换为图像。我使用包来实现这一点: 我得到的错误是: 其中最重要的是: 我认为这是因为ImageMagick无权访问PDF。现在该怎么办?我在Linux服务器上。感谢您的帮助。

  • 我有一个pdf文件(附件)。我的目标是使用pdfbox将pdf转换为图像(与在windows中使用剪切工具相同)。pdf有各种形状和文本。 我使用的代码如下: 我如何让pdfbox采取像直接快照图像的东西? 另外,我注意到png的图像质量不太好,有没有办法提高生成图像的分辨率? 编辑:这是pdf(见第68页)https://drive.google.com/file/d/0B0ZiP71EQHz2

  • 问题内容: 我试图在我的简单GUI上显示一些卡,但是没有显示。 我已使用要上传的.gif上传了一个工作文件,该代码已关闭但不正确。 http://www.filedropper.com/cardgameproblem大小:0Kb,类型:.zip 包含1个.py和1个.gif 要看的线始于257-266。我知道这只是一个小错误,但我看不到它。 请帮忙 问题答案: 经过一番修补,我发现当将图像存储在G

  • 我有一个有向图,边上的权值是非负的。 我的算法应该做到以下几点: 获取从顶点u到顶点V的所有路径 计算从u到v的每条路径上的最小加权边 计算我从上面计算的最小加权边的最大值。