numpy.piecewise
-
numpy.piecewise(x, condlist, funclist, *args, **kw)[source] -
Вычислить функцию, заданную по частям.
Для заданного набора условий и соответствующих функций вычислить каждую функцию на входных данных, где ее условие истинно.
Параметры: -
x : ndarray or scalar -
Область определения входных данных.
-
condlist : list of bool arrays or bool scalars -
Каждый булевый массив соответствует функции в
funclist. В местах, гдеcondlist[i]истинно,funclist[i](x)используется в качестве значения результата.Каждый булевый массив в
condlistвыбирает частьx, и поэтому должен иметь такую же форму, какx.Длина
condlistдолжна соответствовать длинеfunclist. Если предоставлена одна дополнительная функция, т.е. еслиlen(funclist) == len(condlist) + 1, то эта дополнительная функция является значением по умолчанию, используемым, когда все условия ложны. -
funclist : list of callables, f(x,*args,**kw), or scalars -
Каждая функция вычисляется над
xтам, где соответствующее условие истинно. Она должна принимать одномерный массив в качестве входных данных и возвращать одномерный массив или скалярное значение в качестве результата. Если вместо вызываемого объекта предоставляется скаляр, предполагается постоянная функция (lambda x: scalar). -
args : tuple, optional -
Любые дополнительные аргументы, переданные функции
piecewise, передаются функциям при выполнении, т.е., если вызовpiecewise(..., ..., 1, 'a'), то каждая функция вызывается какf(x, 1, 'a'). -
kw : dict, optional -
Ключевые аргументы, используемые при вызове функции
piecewise, передаются функциям при выполнении, т.е., если вызовpiecewise(..., ..., alpha=1), то каждая функция вызывается какf(x, alpha=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])
Применим ту же функцию к скалярному значению.
>>> y = -2 >>> np.piecewise(y, [y < 0, y >= 0], [lambda x: -x, lambda x: x]) array(2)
-
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.15.4/reference/generated/numpy.piecewise.html