dask.array.reduction
dask.array.reduction¶
- dask.array.reduction(x, chunk, aggregate, axis=None, keepdims=False, dtype=None, split_every=None, combine=None, name=None, out=None, concatenate=True, output_size=1, meta=None, weights=None)[源代码]¶
简化的一般版本
- 参数
- x: 数组
数据沿一个或多个轴减少
- chunk: callable(x_chunk, [weights_chunk=None], axis, keepdims)
在解析dask图时首先执行的函数。此函数将并行应用于x的所有原始块。请参见下面的函数参数。
- combine: 可调用对象(x_chunk, axis, keepdims), 可选
用于中间递归聚合的函数(见下文的 split_every)。如果省略,它默认为 aggregate。如果可以在少于 3 步内完成聚合,则根本不会调用它。
- aggregate: callable(x_chunk, axis, keepdims)
在解析dask图时执行的最后一个函数,生成最终输出。即使减少的数组在减少的轴上只有一个块,它也总是被调用。
- 轴: int 或 int 序列, 可选
要聚合的轴或轴。如果省略,则沿所有轴聚合。
- keepdims: 布尔值, 可选
缩减函数是否应保留缩减后的轴,使它们保持为
output_size
的大小,或者移除它们。- dtype: np.dtype
输出数据类型。此参数以前是可选的,但保留为
None
现在将引发异常。- split_every: int >= 2 或 dict(axis: int), 可选
确定递归聚合的深度。如果设置为等于或大于输入块的数量,聚合将分两步进行,每个输入块执行一次
chunk
函数,最后执行一次aggregate
函数。如果设置为小于该值,将使用中间的combine
函数,因此任何一个combine
或aggregate
函数都不会有超过split_every
个输入。聚合图的深度将为 \(log_{split_every}(输入块沿减少的轴)\)。设置为较低的值可以减少缓存大小和网络传输,但代价是更多的CPU和更大的dask图。省略以让 dask 启发式地决定一个好的默认值。默认值也可以通过
dask.config
中的split_every
键全局设置。- 名称: str, 可选
中间节点和输出节点的键的前缀。如果省略,默认为函数名称。
- out: 数组, 可选
另一个dask数组,其内容将被替换。省略以创建一个新数组。请注意,与numpy不同,此设置不会带来任何性能优势,但如果需要保留对先前存在的数组的引用,仍然可能有用。
- concatenate: bool, 可选
如果为 True(默认值),
chunk
/combine
函数的输出在传递给combine
/aggregate
函数之前会被连接成一个单独的 np.array。如果为 False,combine
和aggregate
的输入将是前一步骤的原始输出的列表或单个输出,并且函数将不得不自行连接它们。如果 chunk 和/或 combine 步骤不产生 np.arrays,将此设置为 False 可能会有用。- output_size: int >= 1, 可选
aggregate
函数在缩减轴上的输出大小。如果 keepdims 为 False,则忽略。- 权重类似数组, 可选
在 x 的缩减中使用的权重。将自动广播到 x 的形状,因此必须具有兼容的形状。例如,如果 x 具有形状
(3, 4)
,那么 weights 的可接受形状是(3, 4)
、(4,)
、(3, 1)
、(1, 1)
、(1)
和()
。
- 返回
- dask 数组
- 函数参数
- x_chunk: numpy.ndarray
单个输入块。对于
chunk
函数,它是 x 的原始块之一。对于combine
和aggregate
函数,它是前一个chunk
或combine
函数生成的输出的连接。如果 concatenate=False,它是一个包含前一个函数原始输出的列表。- weights_chunk: numpy.ndarray, 可选
仅适用于
chunk
函数。权重,形状与 x_chunk 相同,在减少单个输入块的过程中应用。如果未提供weights
,则函数可能会忽略此参数。当包含 weights_chunk 时,它必须紧随 x_chunk 参数之后,并且在未提供weights
的情况下也必须有一个默认值。- axis: 元组
归一化的轴列表以减少,例如
(0, )
标量、负数和无轴已被归一化。请注意,某些 numpy 缩减函数无法同时沿多个轴缩减,并且严格要求输入为整数。这些函数必须被包装以应对。- keepdims: bool
减少函数是否应保留减少的轴或移除它们。