Definir operações no Numpy Ufunc
Neste artigo, exploraremos Numpy Ufunc Set Operations e seus aplicativos. Você pode utilizar as operações definidas do NumPy para executar tarefas diferentes em matrizes e conjuntos de matrizes.
Operações de Conjunto – O que são?
As operações de conjunto são operações matemáticas que envolvem conjuntos, que são coleções de objetos distintos.
Existem várias operações de conjunto comumente usadas, incluindo união, interseção, diferença e diferença simétrica.
Essas operações são úteis em vários campos, como ciência da computação , matemática e análise de dados.
Operações de conjunto NumPy Ufunc
O NumPy fornece vários ufuncs para executar operações definidas em arrays.
Esses ufuncs são implementados em C para desempenho mais rápido e fornecem uma interface fácil de usar para executar operações definidas em arrays. Vamos explorar cada um desses ufuncs em detalhes.
De acordo com as operações definidas, o método unique() do NumPy pode ser aplicado para identificar itens exclusivos.
Como exemplo, construa uma matriz de conjunto , mas lembre-se de que a matriz deve ser apenas unidimensional.
Modifique a matriz de itens duplicados para a matriz distinta:
Example:
Aplique o método unique() ao seguinte array palíndromo :
Example:
np.union1d()
A ufunc np.union1d() calcula a união de dois arrays de entrada, que é o conjunto de elementos que estão presentes em qualquer um dos arrays de entrada.
A saída desse ufunc é uma matriz unidimensional classificada contendo todos os elementos exclusivos de ambas as matrizes de entrada. Implemente o método union1d() em operações de conjunto para identificar os dados distintos em duas matrizes.
Combine os valores distintos de duas matrizes definidas utilizando o método union1d() :
Example:
Considerando as duas matrizes de conjuntos a seguir, identifique a união:
Example:
Encontrar cruzamento
A ufunc np.intersect1d() calcula a interseção de dois arrays de entrada, que é o conjunto de elementos que estão presentes em ambos os arrays de entrada.
A saída deste ufunc é uma matriz unidimensional classificada contendo todos os elementos comuns de ambas as matrizes de entrada.
Você pode invocar intersect1d() de acordo com as operações definidas para recuperar apenas os valores incluídos em ambas as matrizes.
Verifique a interseção das duas matrizes definidas abaixo e aplique o argumento opcional assume_unique :
Example:
Implemente o método intersect1d() no exemplo a seguir:
Example:
Encontrar diferença – setdiff1d()
O ufunc np.setdiff1d() calcula a diferença entre dois arrays de entrada, que é o conjunto de elementos que estão presentes no primeiro array de entrada, mas não no segundo array de entrada.
A saída deste ufunc é uma matriz unidimensional classificada contendo todos os elementos exclusivos da primeira matriz de entrada que não estão presentes na segunda matriz de entrada.
Aplique o método setdiff1d() para recuperar apenas os valores no conjunto inicial que não foram encontrados no segundo conjunto.
Inicialize a matriz de dois conjuntos e implemente o método setdiff1d() para exibir a diferença:
Example:
No exemplo a seguir, execute o método setdiff1d() com o argumento opcional assume_unique:
Example:
Encontrar diferença simétrica – setxor1d()
O ufunc np.setxor1d() calcula a diferença simétrica entre dois arrays de entrada, que é o conjunto de elementos que estão presentes em qualquer um dos arrays de entrada, mas não em ambos os arrays de entrada.
A saída deste ufunc é uma matriz unidimensional classificada contendo todos os elementos exclusivos que estão presentes em qualquer uma das matrizes de entrada, mas não em ambas as matrizes de entrada.
Você pode utilizar o método setxor1d() para recuperar valores que não aparecem em AMBOS os conjuntos.
Calcule a diferença simétrica entre even_set1 e even_set2 :
Example:
Invoque o método setxor1d() no exemplo abaixo com assume_unique = True :
Example:
Exemplo de Explicação
Neste exemplo, temos dois arrays NumPy denominados odd_set1 e odd_set2 que representam dois conjuntos de números ímpares. O odd_set1 contém os elementos [1, 3, 5, 7, 9, 11] e o odd_set2 contém os elementos [13, 9, 15, 3, 17, 19].
Em seguida, chamamos a função setxor1d() nos dois conjuntos e armazenamos o resultado na variável mrx_arr .
A função setxor1d() retorna os valores exclusivos entre os dois conjuntos, ou seja, retorna os valores que estão presentes apenas em um dos conjuntos e não em ambos. Nesse caso, a função retorna [ 1, 5, 7, 11, 13, 15, 17, 19 ], que são os valores que não estão presentes nos dois conjuntos.
O parâmetro assume_unique é definido como True , o que indica que as matrizes de entrada já são exclusivas. Se esse parâmetro não for definido como True , a função executará primeiro uma classificação exclusiva nas matrizes de entrada, o que pode afetar o desempenho da função para matrizes grandes.