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