numpy.piecewise
-
numpy.piecewise(x, condlist, funclist, *args, **kw)[source] -
Evaluate a piecewise-defined function.
Given a set of conditions and corresponding functions, evaluate each function on the input data wherever its condition is true.
- Parameters
-
-
xndarray or scalar -
The input domain.
-
condlistlist of bool arrays or bool scalars -
Each boolean array corresponds to a function in
funclist. Wherevercondlist[i]is True,funclist[i](x)is used as the output value.Each boolean array in
condlistselects a piece ofx, and should therefore be of the same shape asx.The length of
condlistmust correspond to that offunclist. If one extra function is given, i.e. iflen(funclist) == len(condlist) + 1, then that extra function is the default value, used wherever all conditions are false. -
funclistlist of callables, f(x,*args,**kw), or scalars -
Each function is evaluated over
xwherever its corresponding condition is True. It should take a 1d array as input and give an 1d array or a scalar value as output. If, instead of a callable, a scalar is provided then a constant function (lambda x: scalar) is assumed. -
argstuple, optional -
Any further arguments given to
piecewiseare passed to the functions upon execution, i.e., if calledpiecewise(..., ..., 1, 'a'), then each function is called asf(x, 1, 'a'). -
kwdict, optional -
Keyword arguments used in calling
piecewiseare passed to the functions upon execution, i.e., if calledpiecewise(..., ..., alpha=1), then each function is called asf(x, alpha=1).
-
- Returns
-
-
outndarray -
The output is the same shape and type as x and is found by calling the functions in
funcliston the appropriate portions ofx, as defined by the boolean arrays incondlist. Portions not covered by any condition have a default value of 0.
-
See also
-
choose, select,where
Notes
This is similar to choose or select, except that functions are evaluated on elements of
xthat satisfy the corresponding condition fromcondlist.The result is:
|-- |funclist[0](x[condlist[0]]) out = |funclist[1](x[condlist[1]]) |... |funclist[n2](x[condlist[n2]]) |--Examples
Define the sigma function, which is -1 for
x < 0and +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
-xforx <0andxforx >= 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])
Apply the same function to a scalar value.
>>> y = -2 >>> np.piecewise(y, [y < 0, y >= 0], [lambda x: -x, lambda x: x]) array(2)
© 2005–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.piecewise.html