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