Логическая индексация в Python — примеры
Что такое логическая индексация массивов numpy?
Numpy позволяет использовать массив логических значений в качестве индекса другого массива. Каждый элемент логического массива указывает, следует ли выбирать элементы из массива.
Если значение равно True, выбирается элемент этого индекса. Если значение равно False, элемент этого индекса не выбирается.
В следующем примере используется логическое индексирование для выбора элементов массива numpy с использованием массива логических значений:
import numpy as np a = np.array([1, 2, 3]) b = np.array([True, True, False]) c = a[b] print(c)
Выход:
[1 2]
Как это работает.
- Сначала создайте новый массив numpy, включающий три числа от 1 до 3:
a = np.array([1, 2, 3])
- Во-вторых, создайте еще один массив numpy с тремя логическими значениями True, True и False:
b = np.array([True, True, False])
- В-третьих, используйте логический массив b в качестве индекса массива a и присвойте выбранные элементы переменной c:
c = a[b]
Поскольку первый и второй элементы массива b имеют значение True, a[b] возвращает новый массив с первым и вторым элементами массива a.
Обычно для фильтрации массива используется логическая индексация. Например:
import numpy as np a = np.arange(1, 10) b = a > 5 print(b) c = a[b] print(c)
Выход:
[False False False False False True True True True] [6 7 8 9]
Как это работает.
- Сначала создайте массив из 9 чисел от 1 до 9, используя функцию arange():
a = np.arange(1, 10)
- Во-вторых, создайте логический массив из следующего выражения:
b = a > 5
Это выражение сравнивает каждый элемент массива a с 5 и возвращает True, если оно больше 5, или False в противном случае. Переменная b представляет собой массив логических значений:
[False False False False False True True True True]
- В-третьих, используйте массив b в качестве индекса массива a и присвойте результат переменной c:
c = a[b]
Массив c содержит только числа из массива a, превышающие 5.