2016-06-07 10 views
0

Ich habe Xy:Numpy: von Matrix Suche basierend auf einer der Säulen

matrix([[1, 1, 1, 1], 
     [1, 2, 2, 2], 
     [2, 3, 3, 3], 
     [2, 4, 4, 4]]) 

Wie kehre ich alle Zeilen mit der ersten Spalte == 1?

Antwort sollte sein:

matrix([[1, 1, 1, 1], 
     [1, 2, 2, 2]]) 
+1

Ich würde empfehlen, 'np.matrix' nicht zu verwenden. Es hat viele komische Inkompatibilitäten und es gibt nur so viel, dass es einfacher ist, Leuten beizubringen, die "Punkt" zu viel zu tun haben würden. – user2357112

Antwort

2

Die matrix Art generell für numpy.array vermieden werden sollte. Wenn Sie jedoch das Gefühl haben, dass Sie verwenden müssen, können Sie eine Matrix mit numpy.compress filtern.

Dabei sein wichtiges Ihre Filter zu glätten ...

>>> numpy.compress((m[:,0] == 1).flat, m, axis=0) 
matrix([[1, 1, 1, 1], 
     [1, 2, 2, 2]]) 

Hier m[:,0] == 1 gibt einen booleschen Matrix angibt, welche Zeilen als akzeptabel angesehen werden. numpy.compress wird nur die akzeptablen Zeilen für uns auswählen.

Verwandte Themen