【问题标题】:How to create occurrence matrix from dynamic graph?如何从动态图中创建出现矩阵?
【发布时间】:2021-03-09 16:32:18
【问题描述】:

我有动态图中的边列表,如下所示

G1=nx.read_edgelist('m_enron_employees_1Sorted.txt',create_using=nx.MultiGraph(), nodetype=int)
print(G1.edges())

[(13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 48), (13, 50), (13, 50), (13, 50), (13, 50), (13, 50), (13, 50), (13, 50), (13, 50), (13, 50), (13, 50), (13, 50), (13, 50), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 67), (13, 147), (13, 147), (13, 147), (13, 147), (13, 147), (13, 147), (13, 147), (13, 147), (13, 147), (13, 147), (13, 147), (13, 147), (13, 147), (13, 147), (13, 147), (13, 147), (13, 147), (13, 147)]

在这里我想创建一个出现矩阵,它捕获特定边缘出现的次数

我尝试了以下选项

count=0
tempo=-1
temp1=-1
app=[]
for edge in G1.edges():
    if((temp0,temp1)==(edge[0], edge[1]))
        count=count +1
    else:
      if count!=0:
          app.append((edge, count))
          temp0=edge[0]
          temp1=edge[1]
          count=1

但是,这种方法没有给出正确的结果

任何帮助将不胜感激

【问题讨论】:

    标签: python graph data-mining find-occurrences


    【解决方案1】:

    set 和内置的count 方法更易于使用:

    >>> edges = [(13, 48), (13, 48), ... ]
    >>>
    >>> freqs = {edge: edges.count(edge) for edge in set(edges)}
    >>> freqs
    {(13, 67): 49, (13, 48): 43, (13, 50): 12, (13, 147): 18}
    >>> max(freqs, key=lambda k: freqs[k])
    (13, 67)
    

    不太清楚你所说的“出现矩阵”是什么意思,因为看起来你正在做的只是计算每条边的频率。

    【讨论】:

    • 非常感谢@blorgon
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-07
    • 2015-11-24
    • 2018-02-07
    • 1970-01-01
    相关资源
    最近更新 更多