Skip to main content
 首页 » 编程设计

python之从二维坐标集合中提取子数组

2024年10月17日24soundcode

在 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])