Seite 1 von 1

Array aufsummieren

Verfasst: Dienstag 5. September 2006, 11:53
von tromai
Hallo zusammen,

ich steh grad irgendwie ziemlich auf dem Schlauch und ich finde in meiner geistigen Umnachtung dazu auch irgendwie nicht. Folgendes Problem:

Ich habe einen numpy.array der Dimension 4x4x3x3. Ich habe also 16 3x3 Matrizen. Von diesen Matrizen möchte ich die Summe berechnen und in einem 4x4 Array speicher. Alles was ich bisher hinbekommen habe ist, dass er entwerder das gesamte 4x4x3x3-Array oder die jeweiligen [x][y]-Elemente der 16 3x3-Arrays summiert.

Mit numpy.sum():

Code: Alles auswählen

a[1][1][:][:].sum()
bekomme ich die Summe die ich will. Allerdings müsste ich dann über die erste und zweite Dimension iterieren. Das muss doch auch in einem Rutsch gehen, so dass ich gleich ein 4x4-Array bekomme. Es kann eigentlich nicht so schwierig sein.

Ich hoffe Ihr könnt mir weiterhelfen.

Danke.

Verfasst: Dienstag 5. September 2006, 16:47
von CM
Hallo,

ein Versuch (ungetestet, denn sonst bräuchte ich Werte):
Wenn a Dein array ist könnte

Code: Alles auswählen

add.reduce(take(a,[indices],axis=0))
gehen, wobei indices die Indizes sind, die Du als Liste generieren mußt (ein range dürfte es tun) und axis per default 0 ist, von Dir aber auf jeden anderen Wert gesetzt werden kann.

Gruß,
Christian

Verfasst: Mittwoch 6. September 2006, 09:53
von tromai
Mir ist es jetzt doch noch wie Schuppen von den Augen gefallen! Es ist ganz einfach:

Code: Alles auswählen

arr.sum(axis=3).sum(axis=2)
liefert das gewünschte Ergebnis. Dein Vorschlag funktioniert natürlich auch, allerdings scheint mir sum() etwas schneller zu sein. Aber trotzdem danke für den Tip. Er hat mich darauf gebracht, dass ich vielleicht einfach mal axis=... ausprobieren könnte ^^

Verfasst: Mittwoch 6. September 2006, 10:11
von CM
Gern geschehen ;-), aber vielleicht beim nächsten Mal ein Beispiel mit hereingeben, denn dann kann man ggf. auch die Antwort vorher testen. (Ich jedenfalls weiß nicht immer auswendig, ob jetzt bei der einen oder anderen Methode nur ein Skalar zurückkommt oder nur eine Exception ...)

Gruß,
Christian

Verfasst: Donnerstag 7. September 2006, 11:03
von tromai
Ok, beim nächsten Mal dann mit Beispiel.