El numpy.apply_over_axes() aplica una función repetidamente sobre múltiples ejes en una array.
Sintaxis:
numpy.apply_over_axes(func, array, axes)
Parámetros:
1d_func : the required function to perform over 1D array. It can only be applied in 1D slices of input array and that too along a particular axis. axis : required axis along which we want input array to be sliced array : Input array to work on *args : Additional arguments to 1D_function **kwargs : Additional arguments to 1D_function
Devolver :
The output array. Shape of the output array can be different depending on whether func changes the shape of its output with respect to its input.
Código 1:
Python
# Python Program illustrating # apply_over_axis() in NumPy import numpy as geek # Using a 3D array geek_array = geek.arange(16).reshape(2, 2, 4) print("geek array :\n", geek_array) # Applying pre-defined sum function over the axis of 3D array print("\nfunc sum : \n ", geek.apply_over_axes(geek.sum, geek_array, [1, 1, 0])) # Applying pre-defined min function over the axis of 3D array print("\nfunc min : \n ", geek.apply_over_axes(geek.min, geek_array, [1, 1, 0]))
Producción :
geek array : [[[ 0 1 2 3] [ 4 5 6 7]] [[ 8 9 10 11] [12 13 14 15]]] func sum : [[[24 28 32 36]]] func min : [[[0 1 2 3]]]
Código 2:
Python
# Python Program illustrating # apply_over_axis() in NumPy import numpy as geek # Using a 2D array geek_array = geek.arange(16).reshape(4, 4) print("geek array :\n", geek_array) """ ->[[ 0 1 2 3] min : 0 max : 3 sum = 0 + 1 + 2 + 3 -> [ 4 5 6 7] min : 4 max : 7 sum = 4 + 5 + 6 + 7 -> [ 8 9 10 11] min : 8 max : 11 sum = 8 + 9 + 10 + 11 -> [12 13 14 15]] min : 12 max : 15 sum = 12 + 13 + 14 + 15 """ # Applying pre-defined min function over the axis of 2D array print("\nApplying func max : \n ", geek.apply_over_axes(geek.max, geek_array, [1, -1])) # Applying pre-defined min function over the axis of 2D array print("\nApplying func min : \n ", geek.apply_over_axes(geek.min, geek_array, [1, -1])) # Applying pre-defined sum function over the axis of 2D array print("\nApplying func sum : \n ", geek.apply_over_axes(geek.sum, geek_array, [1, -1]))
Producción :
geek array : [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11] [12 13 14 15]] Applying func max : [[ 3] [ 7] [11] [15]] Applying func min : [[ 0] [ 4] [ 8] [12]] Applying func sum : [[ 6] [22] [38] [54]]
Código 3: equivalente al Código 2 sin usar numpy.apply_over_axis()
Python
# Python Program illustrating # equivalent to apply_over_axis() import numpy as geek # Using a 3D array geek_array = geek.arange(16).reshape(2, 2, 4) print("geek array :\n", geek_array) # returning sum of all elements as per the axis print("func : \n", geek.sum(geek_array, axis=(1, 0, 2), keepdims = True))
Producción :
geek array : [[[ 0 1 2 3] [ 4 5 6 7]] [[ 8 9 10 11] [12 13 14 15]]] func : [[[120]]]
Referencias:
https://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.apply_over_axes.html
Nota:
estos códigos no se ejecutarán en IDE en línea. Ejecútelos en sus sistemas para explorar el funcionamiento.
Este artículo es aportado por Mohit Gupta_OMG 😀 . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA