如何搜索 numpy 数组以找到两个坐标的相应值?



我有一个数组,它有3列:X,Y和速度。如何编写一个函数,以便我可以通过输入 X,Y 坐标来搜索数组,并且该函数返回该索引的相应速度值? 假设我的数组如下:

srcxy_deltv = [[2500 0 3.4123]
[23000 0 3.4213]
[23500 0 3.4303]
...
[33675 25500 0.49377]
[33725 25500 0.49878]
[33775 25500 0.50381]]

第一列是X,第二列是Y,第三列是速度。我希望能够将 X 和 Y 值都输入到函数中以返回速度。例如:

srcxy(2500,0)

这应该返回值 3.4123

您可以像这样进行查找:

srcxy_deltv = np.array(srcxy_deltv)
def srcxy(x,y, data=srcxy_deltv):
return srcxy_deltv[(srcxy_deltv[:,:2] == [2500,0]).all(1),-1][0]
srcxy(2500,0)
# 3.4123

如果您愿意接受其他软件包,pandas可能是一个不错的选择:

df = pd.DataFrame(srcxy_deltv).set_index([0,1])
df.loc[(2500,0)].iloc[0]
# 3.4123
df.loc[(33725, 25500)].iloc[0]
# 0.49878

最新更新