Função de Aplicação NumPy

Funcao De Aplicacao Numpy



A biblioteca embutida oferecida pelo Python, conhecida como NumPy, nos permite construir os arrays multidimensionais, modificá-los e realizar vários cálculos aritméticos neles. A função Apply também é fornecida pelo pacote NumPy. O caso de uso típico para a função apply é semelhante ao cenário em que queremos fatiar um array e realizar algumas operações em cada elemento de uma lista, por exemplo, se queremos elevar ao quadrado cada item de uma linha. É claro que, em Python, sabemos que os loops for são lentos, então gostaríamos de evitá-los, se possível. A função “apply” pode ser usada se você quiser fazer a mesma operação em cada linha ou coluna de um data frame. Em outras palavras, ele faz o que você deseja fazer com um loop for sem precisar escrever um loop for.

Existem dois métodos para aplicar qualquer função à matriz, dependendo da condição. Podemos aplicar a função “apply over the axis” que é útil quando aplicamos a função em cada elemento do array um por um, e é útil para os arrays n-dimensionais. O segundo método é “aplicar ao longo do eixo”, que se aplica a uma matriz unidimensional.

Sintaxe:

Método 1: Aplicar ao longo do eixo

numpy. apply_along_axis ( 1d_function , eixo , arr , *args , **quartos )

Na sintaxe, temos a função “numpy.apply” para a qual passamos cinco argumentos. O primeiro argumento que é “1d_function” opera na matriz unidimensional, que é necessária. Enquanto o segundo argumento, o “eixo”, é aquele em qual eixo você deseja fatiar a matriz e aplicar essa função. O terceiro parâmetro é “arr”, que é o array dado ao qual queremos aplicar a função. Enquanto os “*args” e “*kwargs” são os argumentos adicionais que não são necessários adicionar.







Exemplo 1:

Avançando para uma melhor compreensão dos métodos “apply”, realizamos um exemplo para verificar o funcionamento dos métodos apply. Neste caso, executamos a função “apply_along_Axis”. Vamos ao nosso primeiro passo. Primeiro incluímos nossas bibliotecas NumPy como np. E então, criamos um array chamado “arr” que contém uma matriz 3×3 com valores inteiros que são “8, 1, 7, 4, 3, 9, 5, 2 e 6”. Na próxima linha, criamos uma variável chamada “array” que é responsável por guardar o resultado da função apply_along_Axis.



Para essa função, passamos três argumentos. A primeira é a função que queremos aplicar ao array, no nosso caso é a função ordenada porque queremos que nosso array seja ordenado. Em seguida, passamos o segundo argumento “1”, o que significa que queremos fatiar nossa matriz ao longo do eixo = 1. Por último, passamos o array que deve ser ordenado neste caso. No final do código, simplesmente imprimimos os dois arrays – o array original e o array resultante – que são exibidos usando a instrução print().



importar numpy Como por exemplo.

arr = por exemplo. variedade ( [ [ 8 , 1 , 7 ] , [ 4 , 3 , 9 ] , [ 5 , dois , 6 ] ] )

variedade = por exemplo. apply_along_axis ( ordenado , 1 , arr )

imprimir ( 'a matriz original é:' , arr )

imprimir ( 'o array ordenado é:' , variedade )





Como podemos ver na saída a seguir, exibimos os dois arrays. Na primeira, os valores são colocados aleatoriamente em cada linha da matriz. Mas no segundo, podemos ver o array ordenado. Desde que passamos o eixo “1”, ele não classificou a matriz completa, mas a classificou em linha, conforme exibido. Cada linha é classificada. A primeira linha na matriz fornecida é “8, 1 e 7”. Enquanto no array ordenado, a primeira linha é “1, 7 e 8”. Igual a isso, cada linha é classificada.



Método 2: Aplicar sobre o eixo

numpy. apply_over_axes ( função , uma , machados )

Na sintaxe dada, temos a função numpy.apply_over_axis que é responsável por aplicar a função no eixo dado. Dentro da função apply_over_axis, passamos três argumentos. A primeira é a função a ser desempenhada. A segunda é a matriz em si. E o último é o eixo no qual queremos aplicar a função.

Exemplo 2:

No exemplo a seguir, executamos o segundo método da função “apply” na qual calculamos a soma da matriz tridimensional. Uma coisa a lembrar é que a soma de dois arrays não significa que calculamos o array inteiro. Em algumas das matrizes, calculamos a soma de linha, o que significa que adicionamos as linhas e obtemos o único elemento delas.

Vamos avançar para o nosso código. Primeiro importamos o pacote NumPy e depois criamos uma variável que contém o array tridimensional. No nosso caso, a variável é “arr”. Na próxima linha, criamos outra variável que contém o array resultante da função apply_over_axis. Atribuímos a função apply_over_Axis à variável “arr” com três argumentos. O primeiro argumento é a função interna do NumPy para calcular a soma que é np.sum. O segundo parâmetro é o próprio array. O terceiro argumento é o eixo sobre o qual a função é aplicada, neste caso temos o eixo “[0, 2]”. No final do código, executamos os dois arrays usando a instrução print().

importar numpy Como por exemplo.

arr = por exemplo. variedade ( [ [ [ 6 , 12 , dois ] , [ dois , 9 , 6 ] , [ 18 , 0 , 10 ] ] ,

[ [ 12 , 7 , 14 ] , [ dois , 17 , 18 ] , [ 0 , vinte e um , 8 ] ] ] )

variedade = por exemplo. apply_over_axes ( por exemplo. soma , arr , [ 0 , dois ] )

imprimir ( 'a matriz original é:' , arr )

imprimir ( 'a soma da matriz é:' , variedade )

Conforme mostrado na figura a seguir, calculamos alguns de nossos arrays tridimensionais usando a função apply_over_axis. A primeira matriz exibida é a matriz original com a forma de “2, 3, 3” e a segunda é a soma das linhas. A soma da primeira linha é “53”, a segunda é “54” e a última é “57”.

Conclusão

Neste artigo, estudamos como a função apply é usada no NumPy e como podemos aplicar as diferentes funções em arrays ao longo ou sobre o eixo. É fácil aplicar qualquer função na linha ou coluna desejada, cortando-as usando os métodos “apply” fornecidos pelo NumPy. É uma maneira eficiente quando não precisamos aplicá-la a todo o array. Esperamos que você ache esta postagem útil para aprender a utilizar o método de aplicação.