On this page
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