我有存在如2- d numpy的陣列(布爾陣列)布爾掩碼刪除所有元素在對應於布爾陣列掩模
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)
我也有值的獨立的2 d numpy的陣列,其是相同的尺寸布爾掩碼(值陣列)
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 ]])
的我想要做的是刪除值的陣列,其中在該布爾區域相同的位置等於False
所有元素。是否有捷徑可尋?
這個例子的期望的輸出是:
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]])
在這個特定的示例中,在布爾數組的末尾存在所有False
值,但是這並非總是如此,它們可以是隨機分散式。因此,我需要在相應的屏蔽值布爾陣列
整行是True還是False?或者會有混合? –
如果我的回答可以幫助,你可以[標記它接受(https://stackoverflow.com/help/someone-answers)或告訴我什麼是錯的,所以我可以修復它。 –
'arr [mask]'做出這樣的選擇。結果將是1d,因爲通常這種掩碼可以選擇每行不同數量的值。在某些情況下,您可能會將結果重塑爲有意義的二維數組。 – hpaulj