Angenommen, es soll ein Array von Werten haben, die miteinander summiert werden müssenCumulative Summation einer numpy Array von Index
d = [1,1,1,1,1]
und ein zweites Feld angibt, welche Elemente müssen aufsummiert werden
i = [0,0,1,2,2]
Das Ergebnis wird in einem neuen Array der Größe max(i)+1
gespeichert. So wäre zum Beispiel i=[0,0,0,0,0]
äquivalent zum Summieren aller Elemente von d
und Speichern des Ergebnisses an Position 0
eines neuen Arrays der Größe 1
. mit
c = zeros(max(i)+1)
c[i] += d
jedoch
Ich habe versucht, dies zu implementieren, das +=
Betrieb jedes Element fügt nur einmal, so das unerwartete Ergebnis von
[1,1,1]
geben statt
[2,1,2]
Wie würde man diese Art von Summierung richtig umsetzen?
Dieses viel klarer sein würde, wenn die Werte von 'd' einzigartig waren. Zum Beispiel, wenn 'd = [0,1,2,3,4] 'Ich rate für' i = [0,0,0,0,0]' Sie wollen 'c = [10]', während für 'i = [0,0,1,2,2]' willst du 'c = [1,2,7]'? – mtrw
Das ist richtig. Danke fürs klarstellen. – dzhelil
In diesem Fall sollte juxstaposes Lösung, mit der Änderung, die ich in den Kommentaren vorschlage, den Trick machen. – mtrw