Wie finde ich den Index eines Wertes in 2d Array in Python?

8

Ich muss herausfinden, wie ich den ganzen Index eines Wertes in einem 2d numpy Array finden kann.

Zum Beispiel habe ich das folgende 2d-Array:

%Vor%

Ich muss den Index aller 1 und 0 finden.

%Vor%

Ich habe das versucht, aber es gibt mir nicht alle Indizes:

%Vor%

Grundsätzlich gibt es mir nur einen Index in jeder Zeile [(0, 0), (1, 2)] .

    
Pete 27.11.2014, 16:40
quelle

2 Antworten

17

Sie können np.where verwenden, um ein Array von Tupeln von x- und y-Indizes, in denen eine gegebene Bedingung in einem Array gilt.

Wenn a der Name Ihres Arrays ist:

%Vor%

Wenn Sie eine Liste von (x, y) Paaren haben möchten, könnten Sie zip die zwei Arrays:

%Vor%

Oder, noch besser, @jme weist darauf hin, dass np.asarray(x).T eine effizientere Methode zum Erzeugen der Paare sein kann.

    
Alex Riley 27.11.2014, 16:46
quelle
6

Das Problem mit dem von Ihnen bereitgestellten Listenverständnis ist, dass es nur eine Ebene tief geht, Sie brauchen ein geschachteltes Listenverständnis:

%Vor%

Wenn Sie mit einem Array mit Zahlen arbeiten, ist es besser, die eingebauten Funktionen zu verwenden, wie von ajcr vorgeschlagen.

    
Mike 27.11.2014 16:51
quelle