numpy.apply_over_axes#

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

在多個軸上重複應用函數。

func 的呼叫形式為 res = func(a, axis),其中 axisaxes 的第一個元素。函數呼叫的結果 res 必須與 a 具有相同的維度,或少一個維度。如果 resa 少一個維度,則會在 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 的可重新排序 ufuncs 的元組軸參數。自 1.7.0 版本以來,ufuncs 的元組軸參數已可用。

範例

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