NumPy Boolean Array trong chỉ mục [bản sao]

Sep 20 2020

Giả sử chúng ta có hai mảng

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

cho

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

Chúng ta có thể thực hiện a [b] để chỉ nhận các giá trị của b đúng cho chúng ta [1, 4]

Tôi đã cố gắng thực hiện [không phải b] để nhận được những câu trả lời sai nhưng bị lỗi. Tôi biết mình có thể làm a[b == False]nhưng muốn làm theo cách của Pythonic.

Bất kì giải pháp nào?

Trả lời

1 a_guest Sep 20 2020 at 03:59

Bạn có thể sử dụng một trong hai np.logical_nothoặc ~toán tử :

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