Python 如何搜索numpy数组以找到两个坐标的对应值?
我有一个数组,它有3列:X,Y和velocity。如何编写一个函数,以便通过输入X,Y坐标在数组中搜索,并返回该索引对应的速度值? 假设我的数组如下所示:Python 如何搜索numpy数组以找到两个坐标的对应值?,python,arrays,function,numpy,Python,Arrays,Function,Numpy,我有一个数组,它有3列:X,Y和velocity。如何编写一个函数,以便通过输入X,Y坐标在数组中搜索,并返回该索引对应的速度值? 假设我的数组如下所示: srcxy_deltv = [[2500 0 3.4123] [23000 0 3.4213] [23500 0 3.4303] ... [33675 25500 0.49377] [33725 2550
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
谢谢你,伙计,这正是我需要的!只需将==[2500,0]更改为==[x,y]:)