Spec-Zone.ru › NumPy 2.0

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

Примеры

Определим функцию signum, которая равна -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–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.piecewise.html

Spec-Zone.ru

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