numpy.apply_along_axis() in Python
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.
Last Updated :
28 Mar, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...