w3resource

NumPy Functional programming: piecewise() function

numpy.piecewise() function

The piecewise() function is used to 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.

Syntax:

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

Version: 1.15.0

Parameter:

Name Description Required /
Optional
x The input domain.
ndarray or scalar
Required
condlist 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.
list of bool arrays or bool scalars
Required
funclist Each function is evaluated over x wherever 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.
list of callables, f(x,*args,**kw), or scalars
Required
args 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').
tuple
Optional
kw Keyword arguments used in calling piecewise are passed to the functions upon execution, i.e.,
if called piecewise(..., ..., alpha=1), then each function is called as f(x, alpha=1).
dict
Optional

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 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]])
      |--

NumPy.piecewise() method Example:

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

>>> import numpy as np
>>> x = np.linspace(-3.5, 3.5, 5)
>>> np.piecewise(x, [x < 0, x >= 0], [-1, 1])

Output:

array([-1., -1., -1.,  1.,  1.,  1.])

Define the absolute value, which is -x for x <0 and x for x >= 0.

>>> import numpy as np
>>> x = np.linspace(-3.5, 3.5, 5)
>>> np.piecewise(x, [x < 0, x >= 0], [lambda x: -x, lambda x: x])

Output:

array([3.5 , 1.75, 0.  , 1.75, 3.5 ])

Apply the same function to a scalar value.

>>> import numpy as np
>>> x = np.linspace(-3.5, 3.5, 5)
>>> y = -6
>>> np.piecewise(y, [y < 0, y >= 0], [lambda x: -x, lambda x: x])

Output:

array(6)

Python - NumPy Code Editor:

Previous: frompyfunc() function
Next: NumPy Home



Follow us on Facebook and Twitter for latest update.