numpy.intersect1d#
- numpy.intersect1d(ar1, ar2, assume_unique=False, return_indices=False)[источник]#
Найти пересечение двух массивов.
Вернуть отсортированные уникальные значения, которые есть в обоих входных массивах.
- Параметры:
- ar1, ar2array_like
Входные массивы. Будут сведены к одномерным, если ещё не являются таковыми.
- assume_uniquebool
Если True, предполагается, что оба входных массива уникальны, что может ускорить вычисление. Если True, но
ar1илиar2не уникальны, могут возникнуть некорректные результаты и индексы вне границ. По умолчанию False.- return_indicesbool
Если True, возвращаются индексы, соответствующие пересечению двух массивов. Используется первое вхождение значения, если их несколько. По умолчанию False.
- Возвращает:
- intersect1dndarray
Отсортированный одномерный массив общих и уникальных элементов.
- comm1ndarray
Индексы первых вхождений общих значений в ar1. Предоставляется только если return_indices равно True.
- comm2ndarray
Индексы первых вхождений общих значений в ar2. Предоставляется только если return_indices равно True.
Примеры
>>> import numpy as np >>> np.intersect1d([1, 3, 4, 3], [3, 1, 2, 1]) array([1, 3])
Для пересечения более двух массивов используйте functools.reduce:
>>> from functools import reduce >>> reduce(np.intersect1d, ([1, 3, 4, 3], [3, 1, 2, 1], [6, 3, 4, 2])) array([3])
Чтобы вернуть индексы значений, общих для входных массивов, вместе с пересекающимися значениями:
>>> x = np.array([1, 1, 2, 3, 4]) >>> y = np.array([2, 1, 4, 6]) >>> xy, x_ind, y_ind = np.intersect1d(x, y, return_indices=True) >>> x_ind, y_ind (array([0, 2, 4]), array([1, 0, 2])) >>> xy, x[x_ind], y[y_ind] (array([1, 2, 4]), array([1, 2, 4]), array([1, 2, 4]))