numpy.apply_over_axes(func,array,axes):在数组的多个轴上重复应用函数。
参数:
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
返回:
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.
代码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]))
输出:
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]]]
代码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]))
输出:
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]]
代码3:等效于代码2,但不使用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))
输出:
geek array : [[[ 0 1 2 3] [ 4 5 6 7]] [[ 8 9 10 11] [12 13 14 15]]] func : [[[120]]]
相关用法
注:本文由纯净天空筛选整理自 numpy.apply_over_axes() in Python。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。