numpy.apply_over_axes#

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

将函数重复应用于多个轴。

func 的调用方式为 res = func(a, axis),其中 axisaxes 的第一个元素。函数调用的结果 res 的维度要么与 a 相同,要么比 a 少一个维度。如果 res 的维度比 a 少一个,则会在 axis 前插入一个维度。然后,将使用 res 作为第一个参数,对 axes 中的每个轴重复调用 func

参数:
funcfunction

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

a类数组对象

输入数组。

axes类数组对象

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

返回:
apply_over_axisndarray

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

另请参阅

apply_along_axis

沿给定轴对数组的 1-D 切片应用一个函数。

备注

此函数等价于具有 `keepdims=True` 的可重排通用函数的元组轴参数。自版本 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]]])

通用函数的元组轴参数等价

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