Операции набора NumPy
Что такое набор
Множество в математике — это набор уникальных элементов.
Множества используются для операций, включающих частые операции пересечения, объединения и разности.
Создание наборов в NumPy
Мы можем использовать метод NumPy unique()
для поиска уникальных элементов из любого массива. Например, создайте массив наборов, но помните, что массивы наборов должны быть только одномерными массивами.
Пример
Преобразуйте следующий массив с повторяющимися элементами в набор:
import numpy as np
arr = np.array([1, 1, 1, 2, 3, 4, 5, 5, 6, 7])
x = np.unique(arr)
print(x)
В поисках Союза
Чтобы найти уникальные значения двух массивов, используйте union1d()
метод.
Пример
Найдите объединение следующих двух массивов множеств:
import numpy as np
arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([3, 4, 5, 6])
newarr = np.union1d(arr1, arr2)
print(newarr)
Поиск пересечения
Чтобы найти только те значения, которые присутствуют в обоих массивах, используйте intersect1d()
метод.
Пример
Найдите пересечение следующих двух массивов множеств:
import numpy as np
arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([3, 4, 5, 6])
newarr = np.intersect1d(arr1, arr2, assume_unique=True)
print(newarr)
Примечание: метод intersect1d()
принимает необязательный аргумент assume_unique
, который, если установить его в значение True, может ускорить вычисления. При работе с наборами всегда следует устанавливать значение True.
Нахождение различий
Чтобы найти только значения в первом наборе, которые НЕ присутствуют в наборе секунд, используйте setdiff1d()
метод.
Пример
Найдите отличие set1 от set2:
import numpy as np
set1 = np.array([1, 2, 3, 4])
set2 = np.array([3, 4, 5, 6])
newarr = np.setdiff1d(set1, set2, assume_unique=True)
print(newarr)
Примечание: метод setdiff1d()
принимает необязательный аргумент assume_unique
, который, если установить его в значение True, может ускорить вычисления. При работе с наборами всегда следует устанавливать значение True.
Нахождение симметричной разницы
Чтобы найти только те значения, которые НЕ присутствуют в ОБОИХ наборах, используйте setxor1d()
метод.
Пример
Найдите симметричную разность множеств set1 и set2:
import numpy as np
set1 = np.array([1, 2, 3, 4])
set2 = np.array([3, 4, 5, 6])
newarr = np.setxor1d(set1, set2, assume_unique=True)
print(newarr)
Примечание: метод setxor1d()
принимает необязательный аргумент assume_unique
, который, если установить его в значение True, может ускорить вычисления. При работе с наборами всегда следует устанавливать значение True.