numpy.ma.apply_along_axis
- 
numpy.ma.apply_along_axis(func1d, axis, arr, *args, **kwargs)[source] - 
Apply a function to 1-D slices along the given axis.
Execute
func1d(a, *args)wherefunc1doperates on 1-D arrays andais a 1-D slice ofarralongaxis.Parameters: func1d : function
This function should accept 1-D arrays. It is applied to 1-D slices of
arralong the specified axis.axis : integer
Axis along which
arris sliced.arr : ndarray
Input array.
args : any
Additional arguments to
func1d.kwargs : any
Additional named arguments to
func1d.New in version 1.9.0.
Returns: apply_along_axis : ndarray
The output array. The shape of
outarris identical to the shape ofarr, except along theaxisdimension. This axis is removed, and replaced with new dimensions equal to the shape of the return value offunc1d. So iffunc1dreturns a scalaroutarrwill have one fewer dimensions thanarr.See also
- 
apply_over_axes - Apply a function repeatedly over multiple axes.
 
Examples
>>> def my_func(a): ... """Average first and last element of a 1-D array""" ... return (a[0] + a[-1]) * 0.5 >>> b = np.array([[1,2,3], [4,5,6], [7,8,9]]) >>> np.apply_along_axis(my_func, 0, b) array([ 4., 5., 6.]) >>> np.apply_along_axis(my_func, 1, b) array([ 2., 5., 8.])
For a function that returns a 1D array, the number of dimensions in
outarris the same asarr.>>> b = np.array([[8,1,7], [4,3,9], [5,2,6]]) >>> np.apply_along_axis(sorted, 1, b) array([[1, 7, 8], [3, 4, 9], [2, 5, 6]])For a function that returns a higher dimensional array, those dimensions are inserted in place of the
axisdimension.>>> b = np.array([[1,2,3], [4,5,6], [7,8,9]]) >>> np.apply_along_axis(np.diag, -1, b) array([[[1, 0, 0], [0, 2, 0], [0, 0, 3]],- [[4, 0, 0],
 - [0, 5, 0], [0, 0, 6]],
 - [[7, 0, 0],
 - [0, 8, 0], [0, 0, 9]]])
 
 - 
 
    © 2008–2017 NumPy Developers
Licensed under the NumPy License.
    https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.ma.apply_along_axis.html