Заменить значения массива на основе вектора индексов - PullRequest
0 голосов
/ 31 марта 2020

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

vals = np.array([.2,.3])
ind = np.array([0,0,1,0])

ожидаемый результат:

np.array([.2,.2,.3,.2])

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Вы можете просто индексировать свой массив значений с помощью массива индексов, поскольку они являются целыми числами (требуется для индексации):

vals[ind]

, что приводит к:

array([0.2, 0.2, 0.3, 0.2])

по желанию.

0 голосов
/ 31 марта 2020

Не уверен, что это наилучший способ NumPy, но вы можете сделать:

[vals[i] for i in ind]
new_vals = np.array([vals[i] for i in ind])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...