gpt4 book ai didi

python - 使用 networkx 函数添加边

转载 作者:行者123 更新时间:2023-12-01 06:05:17 24 4
gpt4 key购买 nike

我在通过networkx制作图表时遇到麻烦。我正在尝试添加边缘,但我的代码不起作用。我按照http://networkx.lanl.gov/教程建议的方式进行操作.

我的代码有什么帮助吗? G.nodes() 和 G.edges() 没有打印出任何内容。

import networkx as nx

fh = open("internal_link.txt", 'rb')
G = nx.parse_edgelist(fh, delimiter='\t' and '\n', create_using=nx.DiGraph())
G.nodes()
G.edges()

我的数据(internal_link.txt)格式如下:(点表示更多行,与之前的形式完全相同)

9991942 15683276
9991942 15763818
9991942 15764086
9991942 15769010
9991942 15771971
9991942 15778227
9991942 15784302
9991942 15793787
9991942 15811314
9991942 15823044
9991942 15843518
9991942 15865514
9991942 15874410
9991942 15936166
9991942 15959560
9991942 16027570
9991942 16043690
9991942 16049723
.
.
.
.

最佳答案

通过使用 delimiter='\t' 和 '\n',您告诉 NetworkX 您希望在 的结果上拆分 fh 中的行'\t' 和 '\n',即 '\n'。由于 '\n' 用于分隔行,因此任何行都不会包含 '\n',因此每行只有一个标记,没有给出有效的边。

示例数据显示分隔节点的空格。实际上不可能判断这是否意味着文件使用空格,因为 Stackoverflow 并不能很好地处理制表符。不过,您根本不需要指定分隔符,只需让它使用默认的空格即可。

您的脚本将变为:

fh = open("internal_link.txt", 'rb')
G = nx.parse_edgelist(fh, create_using=nx.DiGraph())

但是,您也可以使用更简单的 read_edgelist:

G = nx.read_edgelist("internal_link.txt", create_using=nx.DiGraph())

这应该会产生一个有效的图表(当我尝试使用您所显示的数据文件的部分时,会产生一个有效的图表)。

请注意,G.nodes()G.edges() 实际上都不会打印任何内容。如果您在 Python 解释器中交互工作,您将看到结果,但您需要在脚本中更加明确:

print G.nodes()
print G.edges()

关于python - 使用 networkx 函数添加边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8296718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com