dask.array.apply_over_axes

dask.array.apply_over_axes

dask.array.apply_over_axes(func, a, axes)[源代码]

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

此文档字符串是从 numpy.apply_over_axes 复制的。

Dask 版本可能存在一些不一致性。

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

参数
函数函数

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

aarray_like

输入数组。

array_like

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]]])

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

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