Это известное поведение, хотя и несколько неудачное, но не имеет обходного пути.(bincount
может быть использовано для этого, если вы закрутите его руку.) Самым лучшим вариантом будет сделать цикл самостоятельно.
Обратите внимание, что ваш код мог бы быть немного более четким без повторного использования имени w
и без введения другого набора индексов, таких как
for i, w_thing in zip(idx, w):
v[i] += w_thing
Если вам нужно ускорить этот цикл, вам, возможно, придется перейти к C. Cython делает это относительно легко.