Хотя я не чувствую, что это слишком сложно, я борюсь с тем, как даже искать похожие вопросы / ответы.
У меня есть два массива.
indices_array: [0, 1, 1, 0, 0, 1, 0]
value_array: [1, 2, 3, 4, 5, 6, 7]
Я хочу создать новый массив, используя первый массив в качестве индексов для присваивания и второй массив для значений. Это должно привести к созданию нового массива с двумя значениями на индекс, однако одно значение будет равно нулю, а другое - значению из моего второго массива.
Используя приведенные выше примеры массивов, это должно привести к:
[[1, 0],
[0, 2],
[0, 3],
[4, 0],
[5, 0],
[0, 6],
[7, 0]]
Я могу легко создать пустую версию нужного мне массива, используя: np.zeros((total_len, values_per_index))
Моя интуиция не срабатывает при попытке что-то вроде: target_array[indices_array] = value_array
Мне кажется, я понимаю, почемумой попытанный метод не удался, но как на самом деле это сделать, ускользает от меня. Есть ли простой способ сделать это? Python - далеко не мой лучший язык, и некоторые из хитростей иногда кажутся чересчур волшебными по своей природе.
Редактировать: я знаю, что цикл for справился бы с этим, но я действительно хочу лучше понять numpyи в идеале избегать итераций, когда это возможно, для обеспечения чистоты кода и читабельности.