Spec-Zone.ru › NumPy 1.18

numpy.piecewise

numpy.piecewise(x, condlist, funclist, *args, **kw) [source]

Вычислить кусочно-определённую функцию.

Набор условий и соответствующих функций используется для вычисления каждой функции на входных данных, где её условие истинно.

Параметры
xndarray or scalar

Область определения.

condlistlist of bool arrays or bool scalars

Каждый булевый массив соответствует функции в funclist. Там, где condlist[i] истинно, funclist[i](x) используется в качестве выходного значения.

Каждый булевый массив в condlist выбирает участок x, и поэтому должен иметь такую же форму, как x.

Длина condlist должна соответствовать длине funclist. Если дана одна дополнительная функция, т.е. если len(funclist) == len(condlist) + 1, то эта дополнительная функция является значением по умолчанию, используемым там, где все условия ложны.

funclistlist of callables, f(x,*args,**kw), or scalars

Каждая функция вычисляется над x, где соответствующее условие истинно. Она должна принимать одномерный массив в качестве входных данных и возвращать одномерный массив или скалярное значение в качестве выходных данных. Если вместо вызываемого объекта предоставлено скалярное значение, то предполагается постоянная функция (lambda x: scalar).

argstuple, optional

Любые дополнительные аргументы, переданные в piecewise, передаются функциям при выполнении, т.е., если вызов piecewise(..., ..., 1, 'a'), то каждая функция вызывается как f(x, 1, 'a').

kwdict, optional

Ключевые аргументы, используемые при вызове 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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/reference/generated/numpy.piecewise.html

Spec-Zone.ru

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