# numpy.apply_over_axes() in Python

numpy.apply_over_axes(func, array, axes) : applies a function repeatedly over multiple axes in an array.

Parameters :

```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
```

Return :

```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.```

Code 1 :

 `# Python Program illustarting ` `# 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``])) `

Output :

```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]]]
```

Code 2 :

 `# Python Program illustarting ` `# 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``])) `

Output :

```geek array  :
[[ 0  1  2  3]
[ 4  5  6  7]
[ 8  9 10 11]
[12 13 14 15]]

Applying func max :
[[ 3]
[ 7]

]

Applying func min :
[[ 0]
[ 4]
[ 8]
]

Applying func sum :
[[ 6]


]```

Code 3 : Equivalent to Code 2 without using numpy.apply_over_axis()

 `# Python Program illustarting ` `# 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``)) `

Output :

```geek array  :
[[[ 0  1  2  3]
[ 4  5  6  7]]

[[ 8  9 10 11]
[12 13 14 15]]]
func :
[[]]```

References :
https://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.apply_over_axes.html
Note :
These codes won’t run on online-ID. Please run them on your systems to explore the working
.
This article is contributed by Mohit Gupta_OMG 😀. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.