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там, где соответствующее условие истинно. Она должна принимать одномерный массив в качестве входных данных и возвращать одномерный массив или скалярное значение в качестве выходных данных. Если вместо вызываемой функции предоставлено скалярное значение, то предполагается постоянная функция (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.17.0/reference/generated/numpy.piecewise.html