Функция setxor1d
Функция setxor1d вычисляет исключающее ИЛИ (симметрическую разность) для двух массивов, возвращая отсортированный массив уникальных элементов, которые содержатся только в одном из переданных массивов. Первым параметром функция принимает первый массив, вторым - второй массив. Третьим параметром можно указать, следует ли предполагать, что входные массивы уже отсортированы.
Синтаксис
np.setxor1d(ar1, ar2, assume_unique=False)
Пример
Давайте найдём элементы, которые есть только в одном из двух массивов:
import numpy as np
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([4, 5, 6, 7, 8])
res = np.setxor1d(arr1, arr2)
print(res)
Результат выполнения кода:
[1 2 3 6 7 8]
Пример
Если в массивах есть повторяющиеся элементы, функция вернёт только уникальные значения, присутствующие в одном из массивов:
import numpy as np
arr1 = np.array([1, 2, 2, 3, 4])
arr2 = np.array([2, 3, 5, 5, 6])
res = np.setxor1d(arr1, arr2)
print(res)
Результат выполнения кода:
[1 4 5 6]
Пример
Если входные массивы уже отсортированы, можно ускорить вычисления, установив параметр assume_unique в True:
import numpy as np
arr1 = np.array([1, 3, 5, 7, 9])
arr2 = np.array([2, 4, 6, 8, 10])
res = np.setxor1d(arr1, arr2, assume_unique=True)
print(res)
Результат выполнения кода:
[1 2 3 4 5 6 7 8 9 10]
Пример
Работа функции с массивами строк:
import numpy as np
arr1 = np.array(['a', 'b', 'c', 'd'])
arr2 = np.array(['c', 'd', 'e', 'f'])
res = np.setxor1d(arr1, arr2)
print(res)
Результат выполнения кода:
['a' 'b' 'e' 'f']