在 Python 中,我有一个包含数据的大型二维数组,以及另一个包含 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]
请您参考如下方法:
你可以使用 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])
