Wie zwei numply Arrays der gleichen Form bedingt zu kombinieren

7

Das hört sich einfach an und ich denke, ich übertreibe das in meinen Gedanken.

Ich möchte ein Array erstellen, dessen Elemente aus zwei Source-Arrays mit der gleichen Form generiert werden, je nachdem, welches Element in den Source-Arrays größer ist.

zur Veranschaulichung:

%Vor%

Ich kann nicht herausfinden, wie man ein Array3 erzeugt, das die Elemente von Array1 und Array2 kombiniert, um ein Array zu erzeugen, in dem nur der größere der beiden Array-Werte array1 / array2 verwendet wird.

Jede Hilfe wäre sehr willkommen. Danke.

    
kabammi 04.10.2017, 06:14
quelle

2 Antworten

18

Wir könnten NumPy verwenden np.maximum , genau zu diesem Zweck gemacht -

%Vor%

Ein anderer Weg wäre die Verwendung des NumPy ufunc np.max auf einem 2D gestapelten Array und max-reduce entlang der ersten Achse (axis=0) -

%Vor%

Timings auf 1 Million Datensätze -

%Vor%     
Divakar 04.10.2017, 06:15
quelle
12

Wenn Ihr Zustand jemals komplexer wird, können Sie % co_de verwenden % :

%Vor%

Sie könnten np.where durch eine beliebige Bedingung ersetzen. Wenn alles, was Sie wollen, das Maximum ist, gehen Sie mit @ Divakar Antwort .

Und nur zum Spaß:

%Vor%     
Eric Duminil 04.10.2017 06:25
quelle

Tags und Links