numpy.piecewise
-
numpy.piecewise(x, condlist, funclist, *args, **kw)[source] -
Вычислить функцию, заданную по частям.
При заданном наборе условий и соответствующих функций вычислить каждую функцию на входных данных, где её условие истинно.
Параметры: x : ndarray или скаляр
Область входных данных.
condlist : список массивов bool или скаляров bool
Каждый массив bool соответствует функции в
funclist. В местах, гдеcondlist[i]истинно,funclist[i](x)используется в качестве выходного значения.Каждый массив bool в
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, как определено массивами bool в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)
© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.12.0/reference/generated/numpy.piecewise.html