Как без цикла поменять значения в заданном массиве на другие?
Имеется массив:
a = np.array([1, 6, 4, 5, 15])
Я генерирую рандомно несколько индексов и сохраняю их в список:
ind = np.random.choice(len(a), size = len(a), replace=True)
Пусть, например, ind = [0, 3, 1, 0, 1].
Теперь, мне нужен другой массив b, в котором значения будут соответствовать элементам исходного массива, но под индексами из массива ind. Т.е., в нашем случае массив b после преобразований = 1, 5, 6, 1, 6.
Как мою реализацию заменить на код без цикла?
for i, j in enumerate(ind):
b = np.zeros_like(a)
b[i] = a[j]
print(b)
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
просто выберите элементы из вектора a по индексу ind:
res = a[ind]
результат:
In [16]: res
Out[16]: array([1, 5, 6, 1, 6])