Operações com conjuntos com NumPy
Um conjunto é uma seleção de elementos com caracterizas semelhantes. Os conjuntos são usados para operações de união, interseção e diferença.
A biblioteca numpy fornece funções para fazermos as operações de união, interseção e diferença.
Criando conjuntos
Para criarmos um conjunto podemos utilizar a função unique. A função unique recebe uma lista e retorna um conjunto. Lembre-se que a matriz passada para a função unique deve ser de uma dimensão.
Exemplo
Nesse exemplo passamos uma matriz com elementos repetidos para a função unique e ela retorna um conjunto sem elementos repetidos.
import numpy as np
array = np.array([1, 1, 2, 2, 3, 4, 5, 5])
conjunto = np.unique(array)
print(conjunto)
array = np.array([1, 1, 2, 2, 3, 4, 5, 5])
conjunto = np.unique(array)
print(conjunto)
Elementos exclusivos de cada conjunto
Para acharmos os elementos exclusivos de cada conjunto podemos utilizar a função union1d. A função union1d recebe dois conjuntos e retorna um conjunto com os elementos exclusivos de cada conjunto passados para a função.
Exemplo
import numpy as np
array1 = np.array([1, 2, 3, 4, 5])
array2 = np.array([2, 6, 7, 8, 4])
uniao = np.union1d(array1, array2)
print(uniao)
array1 = np.array([1, 2, 3, 4, 5])
array2 = np.array([2, 6, 7, 8, 4])
uniao = np.union1d(array1, array2)
print(uniao)
Interseção
A interseção de dois conjuntos são os elementos presentes nos dois conjuntos. Para acharmos a interseção de dois conjuntos podemos utilizar a função intersect1d. A função intersect1d recebe duas matrizes e retorna uma matriz com a interseção das duas matrizes passadas para a função.
Exemplo
A função intersect1d pode receber o argumento assume_unique. O argumento assume_unique, se definido como True, torna a operação mais rápida. Quando estivermos lidando com conjunto sempre devemos definir o argumento assume_unique como True.
import numpy as np
array1 = np.array([1, 2, 3, 4, 5])
array2 = np.array([2, 6, 7, 8, 4])
uniao = np.intersect1d(array1, array2)
print(uniao)
array1 = np.array([1, 2, 3, 4, 5])
array2 = np.array([2, 6, 7, 8, 4])
uniao = np.intersect1d(array1, array2)
print(uniao)
Exemplo
Nesse exemplo a diferença não é perceptível, mas quando estivermos lidando com conjuntos muito grandes de dados a diferença é muito grande.
import numpy as np
array1 = np.array([1, 2, 3, 4, 5])
array2 = np.array([2, 6, 7, 8, 4])
uniao = np.intersect1d(array1, array2, assume_unique=True)
print(uniao)
array1 = np.array([1, 2, 3, 4, 5])
array2 = np.array([2, 6, 7, 8, 4])
uniao = np.intersect1d(array1, array2, assume_unique=True)
print(uniao)
Diferença
Para descobrirmos qual são os elementos do primeiro conjunto que não estão presentes no segundo conjunto, utilizamos a função setdiff1d. A função setdiff1d recebe duas matrizes e retorna uma matriz com os elementos que estão presentes apenas na primeira matriz.
Exemplo
import numpy as np
array1 = np.array([1, 2, 3, 4, 5])
array2 = np.array([2, 6, 7, 8, 4])
uniao = np.setdiff1d(array1, array2, assume_unique=True)
print(uniao)
array1 = np.array([1, 2, 3, 4, 5])
array2 = np.array([2, 6, 7, 8, 4])
uniao = np.setdiff1d(array1, array2, assume_unique=True)
print(uniao)
Diferença simétrica
Na diferença simétrica o resultado é uma matriz com os elementos exclusivos de cada matriz. Os elementos que existem nas duas matrizes são removidos. Para obter a diferença simétrica de dois conjuntos utilizamos a função setxor1d da biblioteca numpy.
Exemplo
import numpy as np
array1 = np.array([1, 2, 3, 4, 5])
array2 = np.array([2, 6, 7, 8, 4])
uniao = np.setxor1d(array1, array2, assume_unique=True)
print(uniao)
array1 = np.array([1, 2, 3, 4, 5])
array2 = np.array([2, 6, 7, 8, 4])
uniao = np.setxor1d(array1, array2, assume_unique=True)
print(uniao)
0 comentários:
Postar um comentário