当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python dask.array.piecewise用法及代码示例


用法:

dask.array.piecewise(x, condlist, funclist, *args, **kw)

评估 piecewise-defined 函数。

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

可能存在与 Dask 版本的一些不一致之处。

给定一组条件和相应的函数,在输入数据的条件为真时评估每个函数。

参数

xndarray 或标量

输入域。

condlist布尔数组或布尔标量列表

每个布尔数组对应于 funclist 中的一个函数。只要condlist[i] 为True,就使用funclist[i](x) 作为输出值。

condlist 中的每个布尔数组选择一块 x ,因此应该与 x 具有相同的形状。

condlist 的长度必须与 funclist 的长度相对应。如果给出了一个额外的函数,即如果 len(funclist) == len(condlist) + 1 ,则该额外函数是默认值,在所有条件为假的情况下使用。

funclist可调用对象、f(x,*args,**kw) 或标量列表

只要对应条件为真,每个函数都会在 x 上进行评估。它应该将一维数组作为输入,并给出一维数组或标量值作为输出。如果提供了标量而不是可调用对象,则假定为常量函数 (lambda x: scalar)。

args元组,可选

piecewise 的任何其他参数都会在执行时传递给函数,即,如果调用 piecewise(..., ..., 1, 'a') ,则每个函数都称为 f(x, 1, 'a')

kw字典,可选

调用 piecewise 时使用的关键字参数在执行时传递给函数,即,如果调用 piecewise(..., ..., alpha=1) ,则每个函数都称为 f(x, alpha=1)

返回

outndarray

输出的形状和类型与 x 相同,可通过在 x 的适当部分调用 funclist 中的函数找到,如 condlist 中的布尔数组所定义。任何条件未涵盖的部分的默认值为 0。

注意

这类似于选择或选择,除了函数是在满足来自 condlist 的相应条件的 x 的元素上评估的。

结果是:

|--
      |funclist[0](x[condlist[0]])
out = |funclist[1](x[condlist[1]])
      |...
      |funclist[n2](x[condlist[n2]])
      |--

例子

定义 sigma 函数,对于 x < 0 为 -1,对于 x >= 0 为 +1。

>>> x = np.linspace(-2.5, 2.5, 6)  
>>> np.piecewise(x, [x < 0, x >= 0], [-1, 1])  
array([-1., -1., -1.,  1.,  1.,  1.])

定义绝对值,对于 x <0-x ,对于 x >= 0x

>>> np.piecewise(x, [x < 0, x >= 0], [lambda x: -x, lambda x: x])  
array([2.5,  1.5,  0.5,  0.5,  1.5,  2.5])

将相同的函数应用于标量值。

>>> y = -2  
>>> np.piecewise(y, [y < 0, y >= 0], [lambda x: -x, lambda x: x])  
array(2)

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.array.piecewise。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。