numpy.piecewise
-
numpy.piecewise(x, condlist, funclist, *args, **kw)[source] -
Вычисление функции, определённой по частям.
При заданном наборе условий и соответствующих функций вычислите каждую функцию на входных данных, где её условие истинно.
Параметры: x : ndarray или скаляр
Вектор входных значений.
condlist : список булевых массивов или булевых скаляров
Каждый булевый массив соответствует функции в
funclist. Там, гдеcondlist[i]истинно,funclist[i](x)используется как выходное значение.Каждый булевый массив в
condlistвыбирает кусокx, и поэтому должен иметь такую же форму, какx.Длина
condlistдолжна соответствовать длинеfunclist. Если дана одна дополнительная функция, т.е. еслиlen(funclist) == len(condlist) + 1, то эта дополнительная функция является значением по умолчанию, используемым там, где все условия ложны.funclist : список вызываемых функций, f(x,*args,**kw), или скаляров
Каждая функция вычисляется над
xтам, где соответствующее условие истинно. Она должна принимать одномерный массив в качестве входных данных и возвращать одномерный массив или скалярное значение в качестве результата. Если вместо вызываемой функции задан скаляр, то предполагается постоянная функция (lambda x: scalar).args : кортеж, необязательно
Все дополнительные аргументы, переданные в
piecewise, передаются функциям при выполнении, т.е., если вызовpiecewise(..., ..., 1, 'a'), то каждая функция вызывается какf(x, 1, 'a').kw : словарь, необязательно
Ключевые аргументы, используемые при вызове
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.14.5/reference/generated/numpy.piecewise.html