Как работает индексация с помощью булевых массивов в NumPy?

Пользователь

от cierra , в категории: Python , 8 месяцев назад

Как работает индексация с помощью булевых массивов в NumPy?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от vladimir , 8 месяцев назад

@cierra 

Индексация с помощью булевых массивов в NumPy позволяет выбирать элементы из массива на основе булевых значений, хранящихся в другом массиве той же длины.


Для этого можно использовать булеву индексацию, в которой вместо числовых индексов передается массив из булевых значений, которые определяют, какие элементы следует выбрать.


Для примера, рассмотрим два массива:

1
2
3
4
import numpy as np 

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


Массив b содержит булевы значения, которые указывают, какие элементы из массива a должны быть выбраны. Для того чтобы выбрать нужные элементы, можно передать массив b в квадратных скобках после массива a:

1
2
result = a[b]
print(result)


В результате будет выведено:

1
[1 3]


Также можно использовать операторы логических операций & (and), | (or), ~ (not) для создания булевых массивов, которые будут использоваться для индексации. Например:

1
2
3
c = np.array([True, False, True, True, False])
result = a[b & c]
print(result)


В результате будет выведено:

1
[1 3]


Таким образом, индексация с помощью булевых массивов в NumPy позволяет выбирать элементы массива на основе булевых значений, хранящихся в другом массиве той же длины.