### Navigation

- index
- modules |
- next |
- previous |
- NumPy v1.3 Manual (DRAFT) »
- NumPy Reference »
- Routines »
- Functional programming »

# numpy.piecewise

`numpy.``piecewise`(x, condlist, funclist, *args, **kw)

  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: | x : (N,) ndarray The input domain. condlist : list of M (N,)-shaped boolean arrays 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 the length of funclist is M+1, then that extra function is the default value, used wherever all conditions are false. funclist : list of M or M+1 callables, f(x,*args,**kw), or values Each function is evaluated over x wherever its corresponding condition is True. It should take an array as input and give an array or a scalar value as output. If, instead of a callable, a value is provided then a constant function (`lambda x: value`) is assumed. args : tuple, optional Any further arguments given to piecewise are passed to the functions upon execution, i.e., if called `piecewise(...,...,1,'a')`, then each function is called as `f(x,1,'a')`. kw : dictionary, optional Keyword arguments used in calling piecewise are passed to the functions upon execution, i.e., if called `piecewise(...,...,lambda=1)`, then each function is called as `f(x,lambda=1)`.
  Returns: | out : ndarray 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 undefined values.

  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

  Define the sigma function, which is -1 for `x < 0` and +1 for `x >= 0`.

      >>> x = np.arange(6) - 2.5 # x runs from -2.5 to 2.5 in steps of 1
      >>> np.piecewise(x, [x < 0, x >= 0.5], [-1,1])
      array([-1., -1., -1.,  1.,  1.,  1.])

  Define the absolute value, which is `-x` for `x <0` and `x` for `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])

### Navigation

- index
- modules |
- next |
- previous |
- NumPy v1.3 Manual (DRAFT) »
- NumPy Reference »
- Routines »
- Functional programming »