为直接图生成权重转移矩阵(或转移矩阵)(作为熊猫数据帧)



我有一个熊猫数据帧:

我想为这个图生成一个权重转移矩阵 M(10000*10000(,而无需在 python 中使用循环(因为循环需要花费大量时间(进行 PageRank 计算。对于图形,我假设帧的每一列都是矩阵的索引,因为它们的值都只有 10000。

FromNodeId  ToNodeId
0   0   1
1   0   2
2   0   3
3   0   4
4   0   5
5   0   6
6   0   7
7   0   8
8   0   9
9   0   10
10  0   11
11  0   12
12  0   13
13  0   14
14  0   15
15  0   16
16  1   0
17  1   7
18  1   17
19  1   18
20  1   19
21  1   20
22  1   21
23  1   22
24  1   23
25  1   24
26  1   25
27  1   26
28  1   27
29  1   28
... ... ...
37810   9960    0
37811   9960    1273
37812   9960    9960
37813   9961    0
37814   9961    1273
37815   9961    9961
37816   9964    45
37817   9964    3731
37818   9964    6275
37819   9964    9964
37820   9965    6275
37821   9967    0
37822   9967    3950
37823   9967    5242
37824   9967    9967
37825   9968    0
37826   9968    3950
37827   9968    5242
37828   9968    9968
37829   9970    9971
37830   9972    5526
37831   9977    2742
37832   9977    6596
37833   9978    6596
37834   9980    2742
37835   9980    6596
37836   9981    2742
37837   9981    6596
37838   9990    9995
37839   9995    9990

如何在 python 中执行此操作?

你不能像编程概念那样避免循环,但你可以避免 pythonfor

matrix = np.zeros(size=(10000,10000))
def func(row):
global matrix
matrix[row['FromNodeId'], row['ToNodeId']] = 1
return row # returning for function sake
df.apply(func)
matrix # now contains all values.

相关内容

  • 没有找到相关文章

最新更新