Как эффективно заменить вектор идентификаторов на вектор соответствующих числовых значений - PullRequest
3 голосов
/ 10 мая 2010

Принимая вектор (или матрицу) идентификаторов

>  1 2 3 3 2

Предположим, что каждый из этих идентификаторов соответствует числовому значению, сохраненному в другом векторе

14 33 25

Я хотел бы заменить идентификаторы на их соответствующие значения, чтобы построить следующий вектор

14 33 25 25 33

Должен быть простой способ достичь этого, не прибегая к петлям, но в данный момент мой мозг подводит меня, и я ничего не смог найти в документации. Есть идеи?

Ответы [ 2 ]

8 голосов
/ 10 мая 2010

при условии:

x = [14 33 25]

ind = [1 2 3 3 2]

тогда

x(ind) = 14 33 25 25 33
0 голосов
/ 11 мая 2010

Для чего это стоит, он работает также с Python + Numpy:

x = array([14,33,25])
ind = [0,1,2,2,1]
x[ind] # -> array([14, 33, 25, 25, 33])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...