在Python中,我有一个包含数据的大型2D数组,以及另一个包含感兴趣的M个二维坐标的集合的Mx2二维数组,例如。
coords=[[150, 123], [151, 123], [152, 124], [153, 125]]
我想在这些坐标(索引)位置提取包含数据数组值的Mx1数组。显然,data[coords]
不起作用。
我怀疑有一种简单的方法可以做到这一点,但stackoverflow到现在为止我失败了。在此先感谢您的帮助。
编辑:一个例子是
data=[[0, 0, 0, 0, 0, 0, 1, 0],
[0, 0, 0, 1, 2, 1, 0, 0],
[0, 0, 0, 1, 23, 40, 0, 0],
[0, 0, 0, 1, 1, 2, 0, 0],
[0, 0, 3, 2, 0, 0, 0, 0],
[0, 0, 4, 5, 6, 2, 1, 0],
[0, 0, 0, 0, 1, 20, 0, 0],
[0, 0, 0, 3, 1, 2, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0]]
coords=[[1,4],[2,4],[2,5],[5,3],[6,5]]
,所需的输出将是
out=[2,23,40,5,20]
答案 0 :(得分:2)
您可以使用list comprehension:
In [73]: [data[i][j] for i,j in coords]
Out[73]: [2, 23, 40, 5, 20]
列表推导返回的结果等同于
result = []
for i,j in coords:
result.append(data[i][j])