numpy.piecewise
-
numpy.piecewise(x, condlist, funclist, *args, **kw)[source] -
Вычислить кусочно-определённую функцию.
Набор условий и соответствующих функций используется для вычисления каждой функции на входных данных, где её условие истинно.
- Параметры
-
-
xndarray or scalar -
Область определения.
-
condlistlist of bool arrays or bool scalars -
Каждый булевый массив соответствует функции в
funclist. Там, гдеcondlist[i]истинно,funclist[i](x)используется в качестве выходного значения.Каждый булевый массив в
condlistвыбирает участокx, и поэтому должен иметь такую же форму, какx.Длина
condlistдолжна соответствовать длинеfunclist. Если дана одна дополнительная функция, т.е. еслиlen(funclist) == len(condlist) + 1, то эта дополнительная функция является значением по умолчанию, используемым там, где все условия ложны. -
funclistlist of callables, f(x,*args,**kw), or scalars -
Каждая функция вычисляется над
x, где соответствующее условие истинно. Она должна принимать одномерный массив в качестве входных данных и возвращать одномерный массив или скалярное значение в качестве выходных данных. Если вместо вызываемого объекта предоставлено скалярное значение, то предполагается постоянная функция (lambda x: scalar). -
argstuple, optional -
Любые дополнительные аргументы, переданные в
piecewise, передаются функциям при выполнении, т.е., если вызовpiecewise(..., ..., 1, 'a'), то каждая функция вызывается какf(x, 1, 'a'). -
kwdict, optional -
Ключевые аргументы, используемые при вызове
piecewise, передаются функциям при выполнении, т.е., если вызовpiecewise(..., ..., alpha=1), то каждая функция вызывается какf(x, alpha=1).
-
- Возвращает
-
-
outndarray -
Вывод имеет ту же форму и тип, что и 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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/reference/generated/numpy.piecewise.html