Как извлечь элементы из массива на основе массива индексов? - PullRequest
0 голосов
/ 12 октября 2018

Допустим, у меня есть список элементов X и один из индексов Y.

X = [1, 2, 3, 4, 5, 6, 7]
Y = [0, 3, 4]

Есть ли в Python функция, позволяющая извлекать элементы из X на основе индексов, представленных в Y?После выполнения X будет:

X = [1, 4, 5]

Ответы [ 3 ]

0 голосов
/ 12 октября 2018

Понимание списка, предоставляемое @Prune, - путь к чистому питону.Если вы не возражаете против numpy, возможно, будет проще использовать их схему индексации:

import numpy as np
>>> np.array(X)[Y]
array([1, 4, 5])
0 голосов
/ 12 октября 2018

Вы можете использовать list.__getitem__ с map:

X = [1, 2, 3, 4, 5, 6, 7]
Y = [0, 3, 4]

res = list(map(X.__getitem__, Y))  # [1, 4, 5]

Или, если вы счастливы использовать стороннюю библиотеку, вы можете использовать NumPy:

import numpy as np

X = np.array([1, 2, 3, 4, 5, 6, 7])
res = X[Y]  # array([1, 4, 5])
0 голосов
/ 12 октября 2018
X = [X[index] for index in Y]

Это понимание списка ;Вы можете посмотреть эту тему, чтобы узнать больше.

...