numpy.apply_over_axes#
- numpy.apply_over_axes(func, a, axes)[源代码]#
在多个轴上重复应用一个函数.
func 调用为 res = func(a, axis) ,其中 axis 是 axes 的第一个元素.函数调用的结果 res 必须与 a 具有相同的维度或少一个维度.如果 res 比 a 少一个维度,则在 axis 之前插入一个维度.然后对 axes 中的每个轴重复调用 func ,并将 res 作为第一个参数.
- 参数:
- func函数
此函数必须接受两个参数, func(a, axis) .
- aarray_like
输入数组.
- axesarray_like
应用 func 的轴;这些元素必须是整数.
- 返回:
- apply_over_axisndarray
输出数组.维度数与 a 相同,但形状可能不同.这取决于 func 是否更改其输出相对于其输入的形状.
参见
apply_along_axis沿给定轴将函数应用于数组的 1-D 切片.
注释
此函数等效于具有 keepdims=True 的可重排序 ufunc 的元组轴参数.自从 1.7.0 版本以来,ufunc 的元组轴参数就已经可用.
示例
>>> 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]]])
传递给ufunc的元组轴参数是等价的:
>>> np.sum(a, axis=(0,2), keepdims=True) array([[[ 60], [ 92], [124]]])