numpy.apply_along_axis() in Python
Last Updated :
28 Mar, 2022
The numpy.apply_along_axis() function helps us to apply a required function to 1D slices of the given array.
1d_func(ar, *args) : works on 1-D arrays, where ar is 1D slice of arr along axis.
Syntax :
numpy.apply_along_axis(1d_func, axis, array, *args, **kwargs)
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
What *args and **kwargs actually are?
Both of these allow you to pass a variable no. of arguments to the function.
*args : allow to send a non-keyword variable length argument list to the function.
Python
import numpy as geek
geek_array = geek.array([[ 8 , 1 , 7 ],
[ 4 , 3 , 9 ],
[ 5 , 2 , 6 ]])
print ( "Sorted as per axis 1 : \n" , geek.apply_along_axis( sorted , 1 , geek_array))
print ( "\n" )
print ( "Sorted as per axis 0 : \n" , geek.apply_along_axis( sorted , 0 , geek_array))
|
Output :
use of args :
[3, 4, 5, 6, 7]
**kwargs: allows you to pass keyword variable length of argument to a function. It is used when we want to handle named argument in a function.
Output :
in1: geeks
in2: No.
in3: 1
Code 1: Python code explaining the use of numpy.apply_along_axis().
Python
import numpy as geek
def geek_fun(a):
return (a[ 0 ] + a[ - 1 ])
arr = geek.array([[ 1 , 2 , 3 ],
[ 4 , 5 , 6 ],
[ 7 , 8 , 9 ]])
print ( "axis=0 : " , geek.apply_along_axis(geek_fun, 0 , arr))
print ( "\n" )
print ( "axis=1 : " , geek.apply_along_axis(geek_fun, 1 , arr))
|
Output :
axis=0 : [ 8 10 12]
axis=1 : [ 4 10 16]
Code 2: Sorting using apply_along_axis() in NumPy Python
Python
import numpy as geek
geek_array = geek.array([[ 8 , 1 , 7 ],
[ 4 , 3 , 9 ],
[ 5 , 2 , 6 ]])
print ( "Sorted as per axis 1 : \n" , geek.apply_along_axis( sorted , 1 , geek_array))
print ( "\n" )
print ( "Sorted as per axis 0 : \n" , geek.apply_along_axis( sorted , 0 , geek_array))
|
Output :
Sorted as per axis 1 :
[[1 7 8]
[3 4 9]
[2 5 6]]
Sorted as per axis 0 :
[[4 1 6]
[5 2 7]
[8 3 9]]
Note :
These codes won’t run on online IDE’s. So please, run them on your systems to explore the working.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...