Spec-Zone.ru › NumPy 1.13

numpy.piecewise

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

Оценить функцию, заданную по кускам.

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

Параметры:

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

Вхідная область определения.

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).

Возвращаемое значение:

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)

© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.piecewise.html

Spec-Zone.ru

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