numpy: индексирование 1d массива с многомерным индексом

Как мне индексировать массив данных меньшего размера с помощью массива индекса большего размера?

Например: дан массив данных 1d и массив индекса 2d:

data = np.array([11,12,13])
idx = np.array([[0,1],
                [1,2])

Я хотел бы получить 2d массив данных:

np.array([[11,12],
          [12,13]])

1 ответ

Это очень просто в Python / NumPy, благодаря продвинутой системе индексации Numpy, вы просто используете свою индексацию в качестве нарезки, например data[idx],

data = np.array([11,12,13])
idx = np.array([[0,1],
                [1,2]])

# this will produce the correct result
data[idx]
# array([[11, 12],
#        [12, 13]])
Другие вопросы по тегам