Suponga que tiene una matriz de valores que necesitarán ser resumido juntossuma acumulativa de una matriz de numpy por el índice
d = [1,1,1,1,1]
y una segunda matriz que especifica que necesitan ser sumada juntos
i = [0,0,1,2,2]
elementos
El resultado se almacenará en una nueva matriz de tamaño max(i)+1
. Por ejemplo, i=[0,0,0,0,0]
sería equivalente a sumar todos los elementos de d
y almacenar el resultado en la posición 0
de una nueva matriz de tamaño 1
.
Me trataron de poner en práctica esta usando
c = zeros(max(i)+1)
c[i] += d
Sin embargo, la operación +=
añade cada elemento de una sola vez, dando así el resultado inesperado de
[1,1,1]
en lugar de
[2,1,2]
¿Cómo implementaría correctamente este tipo de resumen?
Esto sería mucho más claro si los valores de 'd' eran únicos. Por ejemplo, si 'd = [0,1,2,3,4]' Supongo que 'i = [0,0,0,0,0]' quiere 'c = [10]', mientras para 'i = [0,0,1,2,2]' ¿quieres 'c = [1,2,7]'? – mtrw
Eso es correcto. Gracias por aclararlo. – dzhelil
En ese caso, la solución de juxstapose, con el cambio que sugiero en los comentarios, debería hacer el truco. – mtrw