Spec-Zone.ru › NumPy 1.20

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–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.piecewise.html

Spec-Zone.ru

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