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