terça-feira, 21 de abril de 2020

Operações com conjuntos com NumPy

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
import numpy as np

array = np.array([1, 1, 2, 2, 3, 4, 5, 5])

conjunto = np.unique(array)

print(conjunto)
Nesse exemplo passamos uma matriz com elementos repetidos para a função unique e ela retorna um conjunto sem elementos repetidos.

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)

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
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)
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.
Exemplo
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)
Nesse exemplo a diferença não é perceptível, mas quando estivermos lidando com conjuntos muito grandes de dados a diferença é muito grande.

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)

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)

0 comentários:

Postar um comentário