Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何搜索numpy数组以找到两个坐标的对应值?_Python_Arrays_Function_Numpy - Fatal编程技术网

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

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

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