Ich arbeite mit einem 2D NumPy Array. Ich möchte den (Spalten-, Zeilen-) Index oder (x, y) -Koordinaten, wenn Sie dies bevorzugen, von meinem 2D-Array erhalten, das eine boolesche Bedingung erfüllt.
Der beste Weg, um zu erklären, was ich versuche, ist ein triviales Beispiel:
%Vor% An dieser Stelle habe ich jetzt ein boolesches Array, das angibt wo a > 4
.
Mein Ziel ist es zu diesem Zeitpunkt, die Indizes des booleschen Arrays zu nehmen, wo der Wert True
ist. Zum Beispiel haben die Indizes (1, 2)
, (2, 0)
, (2, 1)
und (2, 2)
alle den Wert True.
Mein Endziel ist es, mit einer Liste von Indizes zu enden:
%Vor% Nochmals, ich betone den Punkt, dass der obige Code ein triviales Beispiel ist, aber die Anwendung dessen, was ich versuche, könnte willkürliche Indizes haben, wobei a > 4
und nicht etwas auf arange
und reshape
basiert.
Eine Alternative zur Antwort von @Ashwini Chaudhary ist numpy.nonzero
%Vor% EDIT: Was ist schneller. nonzero
und where
sind im Wesentlichen äquivalent, aber transpose
erweist sich hier als falsch (obwohl es in den Dokumenten erwähnt ):