我有一个数组,它有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