基于图的边缘的相应分数

时间:2017-12-02 13:36:24

标签: python numpy networkx

null

我想根据边缘列表得到相应的分数向量。分数数组代表一个邻接矩阵,其中得分(1,2)代表边缘(1,2)

import numpy as np

score = np.array([
    [0.9, 0.7, 0.2, 0.6, 0.4],
    [0.7, 0.9, 0.6, 0.8, 0.3],
    [0.2, 0.6, 0.9, 0.4, 0.7],
    [0.6, 0.8, 0.4, 0.9, 0.3],
    [0.4, 0.3, 0.7, 0.3, 0.9]])

l2= [(3, 5), (1, 4), (2, 3), (3, 4), (2, 5), (4, 5)]

1 个答案:

答案 0 :(得分:3)

我们可以将保存索引的元组列表转换为数组,然后使用slicing或tuple packed。

所以,转换为数组:

l2_arr = np.asarray(l2)-1

然后,一种方法是 -

score[l2_arr[:,0], l2_arr[:,1]]

另一个 -

score[tuple(l2_arr.T)]

为了完整性,这里有一个使用循环理解来提取行,列索引,从而避免任何数组转换 -

score[[i[0]-1 for i in l2], [i[1]-1 for i in l2]]