numpy.intersect1d
-
numpy.intersect1d(ar1, ar2, assume_unique=False, return_indices=False)[source] -
Найти пересечение двух массивов.
Возвращает отсортированные уникальные значения, присутствующие в обоих входных массивах.
- Parameters
-
-
ar1, ar2array_like -
Входные массивы. Будут приведены к 1D, если это не так.
-
assume_uniquebool -
Если True, оба входных массива предполагаются уникальными, что может ускорить вычисления. Если True, но
ar1илиar2не уникальны, могут возникнуть некорректные результаты и индексы за пределами границ. По умолчанию False. -
return_indicesbool -
Если True, возвращаются индексы, соответствующие пересечению двух массивов. Используется первое вхождение значения, если их несколько. По умолчанию False.
New in version 1.15.0.
-
- Returns
-
-
intersect1dndarray -
Отсортированный 1D массив общих и уникальных элементов.
-
comm1ndarray -
Индексы первых вхождений общих значений в
ar1. Возвращается только еслиreturn_indicesравно True. -
comm2ndarray -
Индексы первых вхождений общих значений в
ar2. Возвращается только еслиreturn_indicesравно True.
-
См. также
-
numpy.lib.arraysetops -
Модуль с рядом других функций для выполнения операций над множествами в массивах.
Примеры
>>> 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]))
© 2005–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.intersect1d.html