NumPy Boolean Array ในดัชนี [ซ้ำกัน]

Sep 20 2020

สมมติว่าเรามีสองอาร์เรย์

a = np.array([1,2,3,4]).reshape(2,2)
b = np.array([True, False, False, True]).reshape(2,2)

ให้

a = [[1, 2],
     [3, 4]] 
b = [[True, False],
     [False, True]]

เราสามารถทำ [b] เพื่อให้ได้เฉพาะค่า b ที่เป็นจริงให้เรา [1, 4]

ฉันพยายามทำ [not b] เพื่อรับสิ่งที่เป็นเท็จ แต่มีข้อผิดพลาด ฉันรู้ว่าทำได้a[b == False]แต่อยากทำด้วยวิธี Pythonic

วิธีแก้ปัญหาใด ๆ

คำตอบ

1 a_guest Sep 20 2020 at 03:59

คุณสามารถใช้อย่างใดอย่างหนึ่งnp.logical_notหรือตัว~ดำเนินการ :

>>> a[np.logical_not(b)]
>>> a[~b]