python - NetworkX:三元组普查中的有向边列表

标签 python graph networkx

在 NetworkX 中,我可以使用 nx.triadic_census(g) 为我提供网络中的三元组列表。 enter image description here

Out:
{'003': 1434217,
 '012': 282025,
 '102': 32640,
 '021D': 21,
 '021U': 267246,
 '021C': 445}

我想知道如何列出属于三元组的有向边。例如,在 Pyspark 中,要列出三元组“102”中的节点/边:g.find("(a)-[e]->(b); (b)-[e2]->(a )").show()

它会给你

|                   a|            e|                   b|            e2|
+--------------------+-------------+--------------------+--------------+
|[US, United State...|  [US, AZ, 0]|    [AZ, Azerbaijan]| [AZ, US, 637]|
|    [LU, Luxembourg]|[LU, BE, 213]|       [BE, Belgium]|[BE, LU, 1470]|
|       [FI, Finland]| [FI, CZ, 24]|[CZ, Czech Republic]|  [CZ, FI, 51]|
|       [HU, Hungary]|  [HU, PL, 0]|        [PL, Poland]| [PL, HU, 231]|
|[RU, Russian Fede...|  [RU, UA, 0]|       [UA, Ukraine]|   [UA, RU, 0]|

我有办法在 NetworkX 中执行此操作吗?

最佳答案

networkx 中没有函数允许您执行此操作,因此您应该手动实现它。我修改了networkx.algorithms.triads代码以返回三元组节点,而不是它们的计数。您可以find it here 。可以通过替换 census['...'].add(tuple(sorted([u, v, w]))) 行中的元组来修改它,以添加边而不是节点。

关于python - NetworkX:三元组普查中的有向边列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55291704/

相关文章:

python - 在 Plotly 中向条形图添加注释

python - 如何使用pygraphviz增加点图中节点之间的间距?

python - 遇到错误 TypeError : can only concatenate tuple (not "list") to tuple

python - Error #15 : Initializing libiomp5. dylib,但发现 libiomp5.dylib 已经初始化

python - Flask jsonify 在新行打印结果

c++ - 如何获得 boost 图中顶点的最大级别(深度)

Git 日志图在一个地方显示每个分支的提交

python - 使用 NetworkX 绘制加权复杂网络

python - 如果不存在,则创建字典键的简写方法

Python 告诉我应该在我放的地方缩进