Spec-Zone.ru › NumPy 1.14

numpy.piecewise

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

Вычисление функции, определённой по частям.

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

Параметры:

x : ndarray или скаляр

Вектор входных значений.

condlist : список булевых массивов или булевых скаляров

Каждый булевый массив соответствует функции в 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, 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–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.14.5/reference/generated/numpy.piecewise.html

Spec-Zone.ru

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