NumPy Aplicar Función

Numpy Aplicar Funcion



La biblioteca incorporada que ofrece Python, conocida como NumPy, nos permite construir matrices multidimensionales, modificarlas y realizar varios cálculos aritméticos en ellas. El paquete NumPy también proporciona la función de aplicación. El caso de uso típico de la función de aplicación es similar al escenario en el que queremos dividir una matriz y realizar algunas operaciones en cada elemento de una lista, por ejemplo, si queremos cuadrar cada elemento de una fila. Por supuesto, en Python, sabemos que los bucles for son lentos, por lo que nos gustaría evitarlos si es posible. La función 'aplicar' se puede utilizar si desea realizar la misma operación en cada fila o columna de un marco de datos. En otras palabras, hace lo que quieres hacer con un bucle for sin tener que escribir un bucle for.

Hay dos métodos para aplicar cualquier función a la matriz según la condición. Podemos aplicar la función 'aplicar sobre el eje', que es útil cuando aplicamos la función en cada elemento de la matriz uno por uno, y es útil para las matrices n-dimensionales. El segundo método es 'aplicar a lo largo del eje', que se aplica a una matriz unidimensional.

Sintaxis:

Método 1: aplicar a lo largo del eje

entumecido aplicar_a lo largo del eje ( 1d_función , eje , Arr , *argumentos , **cuartos )

En la sintaxis tenemos la función “numpy.apply” a la que le pasamos cinco argumentos. El primer argumento, que es '1d_function', opera en la matriz unidimensional, que es necesaria. Mientras que el segundo argumento, el 'eje', es en qué eje desea dividir la matriz y aplicar esa función. El tercer parámetro es 'arr', que es la matriz dada a la que queremos aplicar la función. Mientras que '*args' y '*kwargs' son los argumentos adicionales que no es necesario agregar.







Ejemplo 1:

Avanzando hacia una mejor comprensión de los métodos de 'aplicación', realizamos un ejemplo para verificar el funcionamiento de los métodos de aplicación. En este caso, realizamos la función 'apply_along_Axis'. Vayamos a nuestro primer paso. Primero incluimos nuestras bibliotecas NumPy como np. Y luego, creamos una matriz llamada 'arr' que contiene una matriz de 3 × 3 con valores enteros que son '8, 1, 7, 4, 3, 9, 5, 2 y 6'. En la siguiente línea, creamos una variable llamada 'matriz' que es responsable de mantener el resultado de la función apply_along_Axis.



A esa función, le pasamos tres argumentos. La primera es la función que queremos aplicar a la matriz, en nuestro caso es la función ordenada porque queremos que nuestra matriz esté ordenada. Luego, pasamos el segundo argumento '1', lo que significa que queremos dividir nuestra matriz a lo largo del eje = 1. Por último, pasamos la matriz que se va a ordenar en este caso. Al final del código, simplemente imprimimos ambas matrices, la matriz original y la matriz resultante, que se muestran mediante la instrucción print().



importar entumecido como p.ej.

Arr = p.ej. formación ( [ [ 8 , 1 , 7 ] , [ 4 , 3 , 9 ] , [ 5 , 2 , 6 ] ] )

formación = p.ej. aplicar_a lo largo del eje ( ordenado , 1 , Arr )

impresión ( 'la matriz original es:' , Arr )

impresión ( 'la matriz ordenada es:' , formación )





Como podemos ver en el siguiente resultado, mostramos ambas matrices. En el primero, los valores se colocan aleatoriamente en cada fila de la matriz. Pero en el segundo, podemos ver la matriz ordenada. Desde que pasamos el eje '1', no ha ordenado la matriz completa, pero la ordenó por filas como se muestra. Cada fila está ordenada. La primera fila en la matriz dada es '8, 1 y 7'. Mientras que en la matriz ordenada, la primera fila es '1, 7 y 8'. Igual que esto, cada fila está ordenada.



Método 2: aplicar sobre el eje

entumecido aplicar_sobre_ejes ( función , a , hachas )

En la sintaxis dada, tenemos la función numpy.apply_over_axis que es responsable de aplicar la función en el eje dado. Dentro de la función apply_over_axis, pasamos tres argumentos. La primera es la función que se va a realizar. El segundo es la propia matriz. Y el último es el eje sobre el que queremos aplicar la función.

Ejemplo 2:

En el siguiente caso, realizamos el segundo método de la función 'aplicar' en el que calculamos la suma de la matriz tridimensional. Una cosa para recordar es que la suma de dos matrices no significa que calculemos la matriz completa. En algunas de las matrices, calculamos la suma por filas, lo que significa que sumamos las filas y sacamos el único elemento de ellas.

Avancemos a nuestro código. Primero importamos el paquete NumPy y luego creamos una variable que contiene la matriz tridimensional. En nuestro caso, la variable es “arr”. En la siguiente línea, creamos otra variable que contiene la matriz resultante de la función apply_over_axis. Asignamos la función apply_over_Axis a la variable “arr” con tres argumentos. El primer argumento es la función integrada de NumPy para calcular la suma que es np.sum. El segundo parámetro es la propia matriz. El tercer argumento es el eje sobre el que se aplica la función, en este caso tenemos el eje “[0, 2]”. Al final del código, ejecutamos ambas matrices usando la instrucción print().

importar entumecido como p.ej.

Arr = p.ej. formación ( [ [ [ 6 , 12 , 2 ] , [ 2 , 9 , 6 ] , [ 18 , 0 , 10 ] ] ,

    [ [ 12 , 7 , 14 ] , [ 2 , 17 , 18 ] , [ 0 , 21 , 8 ] ] ] )

formación = p.ej. aplicar_sobre_ejes ( p.ej. suma , Arr , [ 0 , 2 ] )

impresión ( 'la matriz original es:' , Arr )

impresión ( 'la suma de la matriz es:' , formación )

Como se muestra en la siguiente figura, calculamos algunas de nuestras matrices tridimensionales usando la función apply_over_axis. La primera matriz que se muestra es la matriz original con la forma de '2, 3, 3' y la segunda es la suma de las filas. La suma de la primera fila es '53', la segunda es '54' y la última es '57'.

Conclusión

En este artículo, estudiamos cómo se usa la función de aplicación en NumPy y cómo podemos aplicar las diferentes funciones en matrices a lo largo o sobre el eje. Es fácil aplicar cualquier función en la fila o columna deseada cortándolas utilizando los métodos de 'aplicación' proporcionados por NumPy. Es una forma eficiente cuando no tenemos que aplicarlo a toda la matriz. Esperamos que encuentre útil esta publicación para aprender a utilizar el método de aplicación.