【问题标题】:How to convert a Networkx Graph into an igraph object (from python to R)如何将 Networkx Graph 转换为 igraph 对象(从 python 到 R)
【发布时间】:2021-03-01 12:51:11
【问题描述】:

我有两个使用 Networkx (Python 3.8) 从头开始​​制作的图形对象。为了帮助理解情况,这是一个摘要 sn-p:

G = nx.Graph()
Z = nx.Graph()

#some work here to get data for nodes and edges

G.add_nodes_from([(data["id"], {"origin": data["origin"], "text": data["text"]})])

#some other work in order to hash data for improved nodes privacy

G.add_edge(h.hexdigest(), data["x"])
Z.add_edge(h.hexdigest(), data["x"], weight=polarity) #here polarity is a simple double value

现在,问题是我想导出这些对象,以便使用 RStudio 和包 igraph 做一些工作。到目前为止,我已经尝试了以下事情(没有任何运气):

  1. 导出到一个简单的邻接列表(但在 RStudio 中我得到一个错误,这与它需要一个方阵有关,我记不太清了)
  2. 导出到边缘列表(但我得到了另一种类型的错误,我似乎无法使用权​​重表示)
  3. 使用一种幼稚的方法,导出为gml格式,然后安装python-igraph,用Read_Adjacency()函数读取gml文件,然后用Write_Adjacency()函数重新导出(希望通过这个中间步骤,它以某种方式使 igraph 可以理解格式)
  4. 我尝试了here 提出的解决方案,但这次也没有成功

我该怎么办?

这是我在 RStudio 中使用的代码:

ADJACENCY=read.csv("myadjlist.csv",header=FALSE,row.names=NULL,sep=";")
ADJACENCY=as.matrix(ADJACENCY)
#then we create the graph
G=graph_from_adjacency_matrix(ADJACENCY, mode="undirected")

还有错误:

graph.adjacency.dense 中的错误(adjmatrix,模式 = 模式,加权 = 加权,: 在structure_generators.c:274:非方阵,非方阵

这是我的邻接列表:

link

【问题讨论】:

  • 请提供一些额外的细节。例如,共享您正在使用的邻接列表并发布您收到的特定错误。如果我们看不到所涉及的对象类型和错误,则很难提供帮助。
  • 看起来ADJACENCY 实际上不是邻接矩阵。请与dput 分享,以便我们检查。
  • 好的,现在我编辑了
  • 该文件看起来不像邻接列表。你看见了吗?应该如何解读?例如一行是:820976985387313;d54fd34cbddc270cafac961fa721b4406cc6de97;1c0e32c2bebad24ad7a06350a909788643ed13aa;ec13d5dd8f9e011e3114bd23404fe1a50da875aa。应该是什么意思?
  • 好吧,我刚刚在 python 中使用了 Networkx 和函数nx.write_adjlist(G, "my csv")。所以我希望输出是一个 adj 列表。我对该行的解释是节点820976985387313d54fd34cbddc270cafac961fa721b4406cc6de97 连接,依此类推,直到到达换行符

标签: r python-3.x graph networkx igraph


【解决方案1】:

igraph 现在支持与networkx 对象的直接转换。有关详细信息,请参阅https://igraph.org/python/doc/igraph.Graph-class.html#from_networkx。如果您首先转换为 igraph 对象(在 Python 中),将其写入文件,然后使用 igraph(在 R 中)将其读回,这应该可以正常工作。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-25
  • 2021-04-27
  • 2014-07-07
  • 2019-10-05
  • 2011-06-21
  • 2019-06-17
相关资源
最近更新 更多