Назначение идентичных индексов массива сразу в Python / Numpy

Я хочу найти быстрый способ (без цикла for) в Python, чтобы назначить повторные индексы массива. Это желаемый результат с использованием цикла for:

import numpy as np
a=np.arange(9, dtype=np.float64).reshape((3,3))
# The array indices: [2,3,4] are identical.
Px = np.uint64(np.array([0,1,1,1,2]))
Py = np.uint64(np.array([0,0,0,0,0]))
# The array to be added at the array indices (may also contain random numbers).
x = np.array([.1,.1,.1,.1,.1])

for m in np.arange(len(x)):
    a[Px[m]][Py[m]] += x

print a
%[[ 0.1  1.  2.]
%[ 3.3  4.  5.]
%[ 6.1  7.  8.]]

Когда я пытаюсь добавитьx вa по показателямPx,Py Я, очевидно, не получить тот же результат (3,3 против 3,1):

a[Px,Py] += x
print a
%[[ 0.1  1.  2.]
%[ 3.1  4.  5.]
%[ 6.1  7.  8.]]

Есть ли способ сделать это с NumPy? Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос