Spec-Zone.ru › NumPy 1.21

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, where

Примечания

Это аналогично 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API