numpy.piecewise
-
numpy.piecewise(x, condlist, funclist, *args, **kw)[source] -
Вычисление функции, заданной по частям.
При заданном наборе условий и соответствующих функций, вычислить каждую функцию на входных данных там, где её условие истинно.
Параметры: x : ndarray
Область определения.
condlist : список массивов bool
Каждый булевый массив соответствует функции в
funclist. В тех местах, гдеcondlist[i]истинно,funclist[i](x)используется в качестве выходного значения.Каждый булевый массив в
condlistвыбирает частьx, и поэтому должен иметь ту же форму, что иx.Длина
condlistдолжна соответствовать длинеfunclist. Если предоставлена одна дополнительная функция, т.е. еслиlen(funclist) - len(condlist) == 1, то эта дополнительная функция является значением по умолчанию, используемым там, где все условия ложны.funclist : список вызываемых функций, f(x,*args,**kw), или скаляры
Каждая функция вычисляется над
xтам, где соответствующее условие истинно. Она должна принимать массив в качестве входных данных и возвращать массив или скалярное значение в качестве результата. Если вместо вызываемой функции предоставлен скаляр, то предполагается константная функция (lambda x: scalar).args : кортеж, необязательно
Любые дополнительные аргументы, переданные функции
piecewise, передаются функциям при выполнении, т.е., если вызовpiecewise(..., ..., 1, 'a'), то каждая функция вызывается какf(x, 1, 'a').kw : словарь, необязательно
Ключевые аргументы, используемые при вызове функции
piecewise, передаются функциям при выполнении, т.е., если вызовpiecewise(..., ..., lambda=1), то каждая функция вызывается какf(x, lambda=1).Возвращает: out : ndarray
Результат имеет такую же форму и тип, что и x, и вычисляется путём вызова функций в
funclistна соответствующих частяхx, как определено булевыми массивами вcondlist. Части, не покрытые ни одним условием, имеют значение по умолчанию 0.Примечания
Это похоже на choose или select, за исключением того, что функции вычисляются на элементах
x, которые удовлетворяют соответствующему условию изcondlist.Результат:
|-- |funclist[0](x[condlist[0]]) out = |funclist[1](x[condlist[1]]) |... |funclist[n2](x[condlist[n2]]) |--Примеры
Определите функцию сигма, которая равна -1 для
x < 0и +1 для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.])
Определите абсолютное значение, которое равно
-xдляx <0иxдля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])
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.piecewise.html