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(..., ..., lambda=1), то каждая функция вызывается какf(x, lambda=1).Возвращает: out : ndarray
Выходные данные имеют такую же форму и тип, как x, и найдены путём вызова функций в
funclistна соответствующих частяхx, как определено булевыми массивами вcondlist. Части, не покрытые ни одним условием, имеют значение по умолчанию 0.Примечания
Это аналогично 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])
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.piecewise.html