Wie kann ein numpy 2D-Array richtig maskiert werden?

Say Ich habe ein zweidimensionales Array von Koordinaten, das ungefähr so aussieht wie

x = array([[1,2],[2,3],[3,4]])

Zuvor habe ich in meiner Arbeit eine Maske erstellt, die so aussieht wie

mask = [False,False,True]

Wenn ich versuche, diese Maske für den 2D-Koordinatenvektor zu verwenden, erhalte ich eine Fehlermeldung

newX = np.ma.compressed(np.ma.masked_array(x,mask))

>>>numpy.ma.core.MaskError: Mask and data not compatible: data size 
   is 6, mask size is 3.`

was Sinn macht, nehme ich an. Also habe ich versucht, stattdessen einfach die folgende Maske zu verwenden:

mask2 = np.column_stack((mask,mask))
newX = np.ma.compressed(np.ma.masked_array(x,mask2))

Und was ich bekomme ist nah:

>>>array([1,2,2,3])

zu dem, was ich erwarten würde (und will):

>>>array([[1,2],[2,3]])

Es muss einen einfacheren Weg geben, dies zu tun?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage