Как выполнить поиск в массиве numpy, чтобы найти соответствующее значение двух координат? - PullRequest
0 голосов
/ 18 июня 2020

У меня есть массив с 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

1 Ответ

1 голос
/ 18 июня 2020

Вы можете выполнить поиск следующим образом:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...