NetworkX:黑社会人口普查中的有向边列表

时间:2019-03-22 01:43:38

标签: 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中我有办法吗?

1 个答案:

答案 0 :(得分:1)

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