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.19/reference/generated/numpy.piecewise.html