I einen booleschen Maske habe, die als 2-D numpy Array (Boolean Array) bestehenalle Elemente in einem Array Löschen, um Boolesche entsprechenden Maske
array([[ True, True, True, True, True, True, True],
[ True, True, True, True, True, True, True],
[ True, True, True, True, True, True, True],
[ True, True, True, True, True, True, True],
[False, False, False, False, False, False, False],
[False, False, False, False, False, False, False],
[False, False, False, False, False, False, False]], dtype=bool)
Ich habe auch einen separaten 2-D numpy Array von Werten, die (Array Values) ist mit den gleichen Abmessungen wie der booleschen Maske
array([[ 19.189 , 23.2535, 23.1555, 23.4655, 22.6795, 20.3295, 19.7005],
[ 20.688 , 20.537 , 23.8465, 21.2265, 24.5805, 25.842 , 23.198 ],
[ 22.418 , 21.0115, 21.0355, 20.217 , 24.1275, 24.4595, 21.981 ],
[ 21.156 , 18.6195, 23.299 , 22.5535, 23.2305, 28.749 , 21.0245],
[ 21.7495, 19.614 , 20.3025, 21.706 , 22.853 , 19.623 , 16.7415],
[ 20.9715, 21.9505, 21.1895, 21.471 , 21.0445, 21.096 , 19.3295],
[ 24.3815, 26.2095, 25.3595, 22.9985, 21.586 , 23.796 , 20.375 ]])
Was würde ich zu tun ist, alle Elemente aus dem Array von Werten zu löschen, wo die gleiche Stelle in dem booleschen Bereich False
entspricht. Gibt es einen einfachen Weg, dies zu tun?
Die gewünschte Ausgabe für dieses Beispiel ist:
array([[ 19.189 , 23.2535, 23.1555, 23.4655, 22.6795, 20.3295, 19.7005],
[ 20.688 , 20.537 , 23.8465, 21.2265, 24.5805, 25.842 , 23.198 ],
[ 22.418 , 21.0115, 21.0355, 20.217 , 24.1275, 24.4595, 21.981 ],
[ 21.156 , 18.6195, 23.299 , 22.5535, 23.2305, 28.749 , 21.0245]])
In diesem speziellen Beispiel sind alle False
Werte existieren am Ende des dem Booleschen Array, aber dies ist nicht immer der Fall, und sie können zufällig sein, verteilt. Daher brauche ich eine Art und Weise jedes Element aus der Werte-Array des Löschens in denen der entsprechende Maskenwert entspricht False
in der Booleschen Array
Werden ganze Zeilen wahr oder falsch sein? Oder wird es eine Mischung geben? –
Wenn meine Antwort hilft, könntest du es akzeptieren (https://stackoverflow.com/help/someone-answers) oder mir sagen, was falsch war, damit ich es beheben kann. –
'Arr [Maske] 'macht eine solche Auswahl.Das Ergebnis wird 1d sein, da im Allgemeinen eine solche Maske eine unterschiedliche Anzahl von Werten für jede Zeile auswählen könnte. In einigen Fällen können Sie das Ergebnis in ein sinnvolles 2D-Array umformen. – hpaulj