I have a 2D numpy array f, for example:
f = np.array(
[
[0,0,0],
[0,0,0],
[0,0,0]
]
)
and another 2D array q, for example:
q = np.array(
[
[1,1,1],
[1,1,1],
[2,2,2],
[3,3,3]
]
)
Each row in q should be added to a certain row in f, and I only have a list l of indices of rows in f, to which each row in q should be added. The length of l is equal to the number of rows in q. For example:
l = [0,2,0,0]
That means I want to do something like this:
f[l] += q
which should transform f into:
[
[6,6,6],
[0,0,0],
[1,1,1]
]
i.e. I'm expecting it to do this:
f[0] += q[0]
f[2] += q[1]
f[0] += q[2]
f[0] += q[3]
but when some indices are repeated in l (index 0 in this example), it only adds the row in q that corresponds to the last repeated index in l. So instead, I get:
[
[3,3,3],
[0,0,0],
[1,1,1]
]
That means it's doing this:
f[2] += q[1]
f[0] += q[3]
How can I add multiple rows in q to the same row in f, just having the list l?