РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
269 of 541 menu

Функция intersect1d

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

Синтаксис

np.intersect1d(ar1, ar2, assume_unique=False, return_indices=False)

Параметры функции:

  • ar1, ar2 - входные массивы для поиска пересечений
  • assume_unique - если True, функция не удаляет дубликаты для ускорения работы (по умолчанию False)
  • return_indices - если True, возвращает индексы общих элементов в исходных массивах (по умолчанию False)

Пример

Найдем общие элементы в двух числовых массивах:

import numpy as np arr1 = np.array([1, 3, 5, 7, 9]) arr2 = np.array([3, 5, 8, 10, 12]) res = np.intersect1d(arr1, arr2) print(res)

Результат выполнения кода:

[3 5]

Пример

Функция работает с массивами строковых значений:

import numpy as np arr1 = np.array(['a', 'b', 'c', 'd', 'e']) arr2 = np.array(['b', 'd', 'f', 'g', 'h']) res = np.intersect1d(arr1, arr2) print(res)

Результат выполнения кода:

['b' 'd']

Пример

При включенном флаге return_indices функция возвращает кортеж из трех массивов: общие элементы и их индексы в каждом из исходных массивов:

import numpy as np arr1 = np.array([1, 2, 3, 4, 5]) arr2 = np.array([0, 2, 4, 6, 8]) common, idx1, idx2 = np.intersect1d(arr1, arr2, return_indices=True) print("Common:", common) print("Indices in arr1:", idx1) print("Indices in arr2:", idx2)

Результат выполнения кода:

Common: [2 4] Indices in arr1: [1 3] Indices in arr2: [1 2]

Пример

Если массивы содержат дублирующиеся значения, функция по умолчанию возвращает только уникальные общие элементы:

import numpy as np arr1 = np.array([1, 1, 2, 2, 3, 3]) arr2 = np.array([1, 1, 2, 2, 4, 4]) res = np.intersect1d(arr1, arr2) print(res)

Результат выполнения кода:

[1 2]

Пример

При работе с большими массивами, если известно, что все элементы уникальны, можно ускорить работу функцией с флагом assume_unique:

import numpy as np arr1 = np.array([1, 2, 3, 4, 5]) arr2 = np.array([3, 4, 5, 6, 7]) res = np.intersect1d(arr1, arr2, assume_unique=True) print(res)

Результат выполнения кода:

[3 4 5]

Смотрите также

  • функцию unique,
    которая возвращает уникальные элементы массива
  • функцию isin,
    которая проверяет наличие элементов в массиве
  • функцию in1d,
    которая проверяет каждый элемент первого массива на вхождение во второй
  • функцию union1d,
    которая объединяет элементы двух массивов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить