Seite 1 von 1

Arrays vergleichen

Verfasst: Dienstag 4. Juli 2006, 12:45
von tromai
Hallo zusammen,

ich suche nach einer Möglichkeit in Scipy ( /Numpy) zwei oder mehr 2D-Arrays miteinander zu vergleichen.

Um genau zu sein möchte ich aus den beiden gleichgroßen Arrays die Maximalwerte für jede "Zelle" und das ganze dann in einen neuen Array abspeichern.

Bsp.:

Code: Alles auswählen

a= [[ 0, 1, 2]
[ 3, 4, 5]
[ 6, 7, 8]]

b= [[ 8, 7, 6]
[ 5, 4, 3]
[ 2, 1, 0]]

Ergebnis = [[ 8, 7, 6]
[ 5, 4, 5]
[ 6, 7, 8]]
Das Problem ist, dass mein Array 900*900 Elemente hat und das ganze ca. 24 Mal durchlaufen muss. Mit einer Schleife, die jedes Element einzeln vergleicht dauert das Ewigkeiten. Gibt es eine Funktion, die das in einem Rutsch kann?

Danke für die Hilfe

Verfasst: Dienstag 4. Juli 2006, 13:20
von BlackJack
Ich habe leider nur `numarray` installiert, da geht es mit der `maximum()` Funktion:

Code: Alles auswählen

In [65]: a
Out[65]:
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

In [66]: b
Out[66]:
array([[8, 7, 6],
       [5, 4, 3],
       [2, 1, 0]])

In [67]: numarray.maximum(a, b)
Out[67]:
array([[8, 7, 6],
       [5, 4, 5],
       [6, 7, 8]])
Numpy hat sicher etwas vergleichbares, wenn nicht gar mit dem gleichen Namen.

Verfasst: Dienstag 4. Juli 2006, 13:54
von tromai
Ok, danke.

In Numpy heißt es

Code: Alles auswählen

numpy.maximum(a,b)
War die ganze Zeit auf der richtigen Seite von der Docu, Hab bestimmt 20 mal drübergelesen und es nicht gesehen *grummel*

Naja, jetzt ist es hier dokumentiert. Vielleicht sucht ja mal jemand danach.

Verfasst: Dienstag 4. Juli 2006, 13:57
von CM
Ja, kann ich bestätigen - ist genau gleich geblieben.

Gruß,
Christian

PS Bist mir wohl zuvorgekommen - allerdings hilft auch oft ein einfaches dir(numpy) ;-).