numpy.apply_over_axes#

numpy.apply_over_axes(func, a, axes)[源代码]#

在多个轴上重复应用函数.

func 被调用为 res = func(a, axis) ,其中 axisaxes 的第一个元素.函数调用的结果 res 必须具有与 a 相同的维度或少一个维度.如果 resa 少一个维度,则在 axis 之前插入一个维度.然后,对于 axes 中的每个轴,使用 res 作为第一个参数重复调用 func .

参数:
funcfunction

此函数必须接受两个参数, func(a, axis) .

aarray_like

输入数组.

axesarray_like

应用 func 的轴;元素必须是整数.

返回:
apply_over_axisndarray

输出数组.维度数与 a 相同,但形状可能不同.这取决于 func 是否改变其输出相对于其输入的形状.

参见

apply_along_axis

沿给定轴将函数应用于数组的 1-D 切片.

注释

此函数等效于可重排序ufuncs的元组轴参数,其中keepdims=True.ufuncs的元组轴参数自1.7.0版本开始可用.

示例

>>> import numpy as np
>>> a = np.arange(24).reshape(2,3,4)
>>> a
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],
       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])

对轴0和2求和.结果具有与原始数组相同的维数:

>>> np.apply_over_axes(np.sum, a, [0,2])
array([[[ 60],
        [ 92],
        [124]]])

ufuncs的元组轴参数是等效的:

>>> np.sum(a, axis=(0,2), keepdims=True)
array([[[ 60],
        [ 92],
        [124]]])