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?