numpy.piecewise¶
-
numpy.
piecewise
(x, condlist, funclist, *args, **kw)[source]¶ 评估分段定义的函数。
给定一组条件和相应的函数,对条件为真的每个函数求值。
参数: x:ndarray
输入域。
condlist:bool数组的列表
每个布尔数组对应于funclist中的函数。在condlist [i]为真的情况下,使用funclist [i](x)作为输出值。
condlist中的每个布尔数组选择一个x,因此应与x形状相同。
condlist的长度必须对应于funclist的长度。如果给出一个额外的函数,即如果
len(funclist) - len(condlist) == t4 > 1
,那么该额外函数是默认值,在所有条件为假的情况下使用。funclist:可调用项列表,f(x,* args,** kw)或标量
每个函数在x上计算,无论其对应的条件为True。它应该使用数组作为输入,并给出一个数组或标量值作为输出。如果不是可调用的,而是提供标量,则常数函数(
λ x: 标量
)假定。args:tuple,可选
任何给予
piecewise
的进一步的参数在执行时传递给函数,即如果调用分段(..., ..., t5> 1, 'a')
,则每个函数称为f(x, 1, 'a')
。kw:dict,可选
用于调用
piecewise
的关键字参数在执行时传递给函数,即如果调用分段(..., ..., t5> lambda = 1)
,则每个函数被称为f(x, lambda = 1) / t7>。
返回: out:ndarray
输出与x具有相同的形状和类型,并且通过调用x的适当部分的funclist中的函数找到,由中的布尔数组定义。 condlist。未被任何条件覆盖的部分的默认值为0。
笔记
这类似于选择或选择,除了对x的元素评估满足condlist的相应条件的函数。
其结果是:
|-- |funclist[0](x[condlist[0]]) out = |funclist[1](x[condlist[1]]) |... |funclist[n2](x[condlist[n2]]) |--
例子
Define the sigma function, which is -1 for
x < 0
and +1 forx >= 0
.>>> x = np.linspace(-2.5, 2.5, 6) >>> np.piecewise(x, [x < 0, x >= 0], [-1, 1]) array([-1., -1., -1., 1., 1., 1.])
Define the absolute value, which is
-x
forx <0
andx
forx >= 0
.>>> 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])