Tôi có hai mảng NumPy, ví dụ:Làm thế nào để lọc một mảng numpy bằng cách sử dụng các giá trị của mảng khác?
a = [1,2,3,4,5]
và một mảng lọc, ví dụ:
f = [False, True, False, False, True]
len(a) == len(f)
Làm thế nào tôi có thể nhận được một mảng NumPy mới chỉ có các giá trị trong một nơi chỉ số tương tự ở f
là True? Trong trường hợp của tôi: [2, 5]
.
Theo giải pháp được chấp nhận (với các giá trị khác nhau):
>>> a = numpy.array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
>>> b = numpy.array([True, False, True, False, True, False, True, False, True, False])
>>> a[b]
array([1, 3, 5, 7, 9])
có vẻ như b là một danh sách không phải là mảng, b phải là một mảng boolean. Hãy thử 'b = np.asarray (b, 'bool')' –