【发布时间】:2021-11-03 11:03:56
【问题描述】:
下面是我在 python 中尝试做的一个小例子。 我正在使用网络,我的网络中有 15000 个不同的节点。 数据来自 pandas 数据集:
Node Target Node_Attrib
mom dad 0.2
mom grandmother 0.12
mom grandfather 0.24
mom Lucy 0.2
dad mom 0.4
dad Lucy 0.3
Lucy mom 0.1
Lucy dad 0.3
Lucy Mark 0.1
Lucy grandmother 0.2
Lucy grandfather 0.1
网络创建如下:
G=nx.from_pandas_edgelist(df,’Node’, ‘Target’,[‘Node_Attrib’]
其中 nx 是 networkx。 由于我想进行一些分析,我需要使用邻接矩阵。 我正在考虑使用交叉表来做到这一点:
adj = pd.crosstab(df.Node, df.Target)
idx=adj.columns.union(df.index)
adj=adj.reindex(index=idx,columns=idx,fill_value=0)
我想知道这是否是在 python 中获取邻接矩阵的最佳方法,也是由于网络中节点的数量。 你知道另一种方法可以更好地管理 Python 中的数千个节点(和边)吗?
【问题讨论】:
-
给定输入的预期输出是什么?
-
我希望示例中的数据有一个邻接矩阵,以便扩展到我的整个数据集(大约 10000 个节点)。我使用了这种方法,但我不确定它是否可以
-
networkx 与问题有什么关系?你正在做什么样的分析,在当前的图形表示中是做不到的?
-
我需要 networkx 来显示我的网络。我的问题是 Incan 如何从 pandas 数据框在 python 中创建邻接矩阵。如果 networkx 不是一个合适的标签(尽管我的问题与 python 中的网络和图形有关),请随意删除它
-
你能澄清一下你的图表是否是定向的吗?
(mom, Lucy)与表中的(Lucy, mom)具有不同的值。另外,您是否希望用边的相关"Node_Attrib"值填充矩阵的值?
标签: python networkx adjacency-matrix