Operações de conjunto NumPy
O que é um conjunto
Um conjunto em matemática é uma coleção de elementos únicos.
Os conjuntos são usados para operações que envolvem operações frequentes de interseção, união e diferença.
Criar conjuntos no NumPy
Podemos usar o unique()
método do NumPy para encontrar elementos exclusivos de qualquer array. Por exemplo, crie um array set, mas lembre-se que os arrays set devem ser somente arrays 1-D.
Exemplo
Converta a seguinte matriz com elementos repetidos em um conjunto:
import numpy as np
arr = np.array([1, 1, 1, 2, 3, 4, 5, 5, 6, 7])
x = np.unique(arr)
print(x)
Encontrando União
Para encontrar os valores exclusivos de duas matrizes, use o union1d()
método.
Exemplo
Encontre a união das duas matrizes de conjuntos a seguir:
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)
Encontrando interseção
Para localizar apenas os valores presentes em ambas as matrizes, use o intersect1d()
método.
Exemplo
Encontre a interseção das duas matrizes de conjuntos a seguir:
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)
Observação: o intersect1d()
método recebe um argumento opcional assume_unique
, que, se definido como True, pode acelerar a computação. Deve sempre ser definido como True ao lidar com conjuntos.
Encontrando a Diferença
Para encontrar apenas os valores no primeiro conjunto que NÃO estão presentes no conjunto de segundos, use o setdiff1d()
método.
Exemplo
Encontre a diferença do set1 do 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)
Observação: o setdiff1d()
método recebe um argumento opcional assume_unique
, que, se definido como True, pode acelerar a computação. Deve sempre ser definido como True ao lidar com conjuntos.
Encontrando a diferença simétrica
Para encontrar apenas os valores que NÃO estão presentes em AMBOS os conjuntos, use o setxor1d()
método.
Exemplo
Encontre a diferença simétrica do set1 e 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)
Observação: o setxor1d()
método recebe um argumento opcional assume_unique
, que, se definido como True, pode acelerar a computação. Deve sempre ser definido como True ao lidar com conjuntos.