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. Wherever condlist[i] is True, funclist[i](x) is used as the output value. - Each boolean array in condlist selects a piece of x, and should therefore be of the same shape as x. - The length of condlist must correspond to that of funclist. If one extra function is given, i.e. if - len(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 x wherever its corresponding condition is True. It should take a 1d array as input and give a 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 called- piecewise(..., ..., 1, 'a'), then each function is called as- f(x, 1, 'a').
- kwdict, optional
- Keyword arguments used in calling - piecewiseare passed to the functions upon execution, i.e., if called- piecewise(..., ..., alpha=1), then each function is called as- f(x, alpha=1).
 
- Returns:
- outndarray
- The output is the same shape and type as x and is found by calling the functions in funclist on the appropriate portions of x, as defined by the boolean arrays in condlist. Portions not covered by any condition have a default value of 0. 
 
 - Notes - This is similar to choose or select, except that functions are evaluated on elements of x that satisfy the corresponding condition from condlist. - The result is: - |-- |funclist[0](x[condlist[0]]) out = |funclist[1](x[condlist[1]]) |... |funclist[n2](x[condlist[n2]]) |-- - Examples - >>> import numpy as np - Define the signum function, which is -1 for - x < 0and +1 for- x >= 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 - -xfor- x <0and- xfor- x >= 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)