Python: Split NumPy Array basierend auf Werten im Array

8

Ich habe ein großes Array:

%Vor%

Ich möchte dieses Array in mehrere Arrays basierend auf dem 2. Wert im Array (3.0, 3.0, 3.0 ... 1.0,1.0,10) aufteilen.

Jedes Mal, wenn sich der zweite Wert ändert, möchte ich ein neues Array, also hat jedes neue Array grundsätzlich den gleichen zweiten Wert. Ich habe dies in Stack Overflow nachgeschlagen und kenne den Befehl

%Vor%

aber ich versuche nicht, das Array in eine bestimmte Anzahl von Arrays aufzuteilen, sondern durch einen Wert. Wie könnte ich das Array in der oben angegebenen Weise aufteilen? Jede Hilfe wäre willkommen!

    
whent1991 06.08.2015, 18:20
quelle

1 Antwort

11

Sie finden die Indizes, in denen sich die Werte unterscheiden, indem Sie numpy.where und numpy.diff in der ersten Spalte:

%Vor%

Erläuterung:

Hier holen wir zuerst die Artikel in der zweiten 2 Spalte:

%Vor%

Um herauszufinden, wo sich die Elemente tatsächlich ändern, können wir numpy.diff :

verwenden %Vor%

Jedes Ding, das nicht Null ist, bedeutet, dass das Element daneben anders ist. Wir können numpy.where verwenden, um die Indizes von Nicht-Null-Elementen zu finden und fügen dann 1 hinzu, weil der tatsächliche Index eines solchen Elements um eins größer ist der zurückgegebene Index:

%Vor%     
Ashwini Chaudhary 06.08.2015, 18:25
quelle

Tags und Links