numpy.ufunc.reduce¶
-
ufunc.
reduce
(a, axis=0, dtype=None, out=None, keepdims=False)¶ 通过沿一个轴应用ufunc,将a的尺寸减少一。
让。然后 =在之上迭代j的结果,对每个累积应用ufunc。对于一维数组,reduce生成的结果等效于:
r = op.identity # op = ufunc for i in range(len(A)): r = op(r, A[i]) return r
例如,add.reduce()等价于sum()。
参数: a:array_like
要执行的数组。
axis:无或int或tuple ints,可选
执行缩小的轴或轴。默认值(axis = 0)对输入数组的第一维执行缩小。轴可能为负,在这种情况下,从最后一个轴计数到第一个轴。
版本1.7.0中的新功能。
如果这是无,则在所有轴上执行缩小。如果这是一个ints的元组,则在多个轴上执行缩减,而不是像以前一样执行单个轴或所有轴。
对于不是可交换的或不相关的操作,在多个轴上执行缩减不是很好地定义。在这种情况下,ufuncs目前不会引发异常,但是将来可能会这样做。
dtype:数据类型代码,可选
用于表示中间结果的类型。默认为输出数组的数据类型(如果提供)或输入数组的数据类型(如果未提供输出数组)。
out:ndarray,可选
存储结果的位置。如果未提供,则返回新分配的数组。
keepdims:bool,可选
如果设置为True,则缩小的轴在结果中保留为尺寸为1的尺寸。使用此选项,结果将相对于原始arr正确广播。
版本1.7.0中的新功能。
返回: r:ndarray
减少的数组。如果提供out,则r是对它的引用。
例子
>>> np.multiply.reduce([2,3,5]) 30
多维数组示例:
>>> X = np.arange(8).reshape((2,2,2)) >>> X array([[[0, 1], [2, 3]], [[4, 5], [6, 7]]]) >>> np.add.reduce(X, 0) array([[ 4, 6], [ 8, 10]]) >>> np.add.reduce(X) # confirm: default axis value is 0 array([[ 4, 6], [ 8, 10]]) >>> np.add.reduce(X, 1) array([[ 2, 4], [10, 12]]) >>> np.add.reduce(X, 2) array([[ 1, 5], [ 9, 13]])