mindspore.numpy.piecewise
- mindspore.numpy.piecewise(x, condlist, funclist, *args, **kw)[源代码]
执行分段定义的函数。根据一组条件和相应的函数,在条件为真的位置对输入数据进行函数求值。
- 参数:
x (Union[int, float, bool, list, tuple, Tensor]) - 输入定义域。
condlist (Union[bool, list[Tensor, bool]]) - 每个boolean数组与
funclist
中的一个函数相对应。在condlist[i]
为真时,使用funclist[i](x)
作为输出值。condlist
中的每个boolean数组选择x
的一个部分,因此应该与x
的shape相同。condlist
的长度必须与funclist
的长度相对应。如果给出了一个额外的函数,即 \(len(funclist) == len(condlist) + 1\) ,则该额外的函数为默认值,用于所有条件均为假的地方。funclist (Union[list[callables], list[scalars]]) - 每个函数在其相应的条件为真时对
x
进行计算。它应该接受一个一维数组作为输入,并输出一个一维数组或标量值。如果提供的不是可调用对象,而是标量,则假定为常数函数(lambda x: scalar)
。args (any) - 传递给
piecewise
的任何进一步参数都会在执行时传递给函数,例如,如果调用piecewise(..., ..., 1, 'a')
,则每个函数都将被调用为f(x, 1, 'a')
。kw (any) - 用于调用
piecewise
的关键字参数,在执行时传递给函数,例如,如果调用piecewise(..., ..., alpha=1)
,则每个函数将被调用为f(x, alpha=1)
。
- 返回:
Tensor,输出与
x
具有相同的shape和类型,通过对x
的对应部分调用funclist
中的函数找到输出值,这些部分由condlist
中的boolean数组定义。未被任何条件覆盖的部分默认值为0
。- 异常:
ValueError - 如果
funclist
的长度不在 \((len(condlist), len(condlist) + 1)\) 范围内。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import mindspore.numpy as np >>> x = np.linspace(-2.5, 2.5, 6) >>> print(np.piecewise(x, [x < 0, x >= 0], [-1, 1])) [-1 -1 -1 1 1 1]