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)]
答案 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]]