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]имеет значение True,funclist[i](x)используется в качестве выходного значения.Каждый булевый массив в
condlistвыбирает частьx, и поэтому должен иметь такую же форму, как иx.Длина
condlistдолжна соответствовать длинеfunclist. Если предоставлена дополнительная функция, т.е. еслиlen(funclist) == len(condlist) + 1, то эта дополнительная функция является значением по умолчанию, используемым там, где все условия ложны. -
funclist : list of callables, f(x,*args,**kw), or scalars -
Каждая функция оценивается по
xтам, где соответствующее условие равно True. Она должна принимать 1d массив в качестве входных данных и возвращать 1d массив или скалярное значение в качестве выходных данных. Если вместо вызываемой функции предоставлено скалярное значение, то предполагается константная функция (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.16.1/reference/generated/numpy.piecewise.html