Функция in1d
Функция in1d проверяет вхождение
каждого элемента первого массива во второй массив.
Первый параметр - массив, элементы которого проверяются.
Второй параметр - массив, в котором ищутся вхождения.
Третий параметр assume_unique ускоряет работу,
если оба массива уникальны.
Четвёртый параметр invert инвертирует результат.
Функция возвращает логический массив
такой же длины, как и первый массив.
Синтаксис
np.in1d(ar1, ar2, assume_unique=False, invert=False)
Пример
Проверим, какие элементы из массива [1, 2, 3, 4, 5]
содержатся в массиве [2, 4, 6]:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
test = np.array([2, 4, 6])
res = np.in1d(arr, test)
print(res)
Результат выполнения кода:
[False True False True False]
Пример
Используем параметр invert, чтобы получить
элементы, отсутствующие во втором массиве:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
test = np.array([2, 4, 6])
res = np.in1d(arr, test, invert=True)
print(res)
Результат выполнения кода:
[ True False True False True]
Пример
Укажем, что массивы уникальны, для ускорения работы:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
test = np.array([2, 4, 6])
res = np.in1d(arr, test, assume_unique=True)
print(res)
Результат выполнения кода:
[False True False True False]
Пример
Используем in1d для фильтрации исходного массива
по условию вхождения:
import numpy as np
arr = np.array([10, 20, 30, 40, 50])
test = np.array([20, 40, 60])
mask = np.in1d(arr, test)
res = arr[mask]
print(res)
Результат выполнения кода:
[20 40]
Смотрите также
-
функцию
isin,
которая является более удобным аналогом для работы с многомерными массивами -
функцию
unique,
которая находит уникальные элементы массива -
функцию
intersect1d,
которая возвращает пересечение двух массивов -
функцию
setdiff1d,
которая возвращает разность двух массивов