mars.tensor.copysign#

mars.tensor.copysign(x1, x2, out=None, where=None, **kwargs)[来源]#

逐元素地将x1的符号改为x2的符号。

如果两个参数都是数组或序列,它们必须具有相同的长度。如果 x2 是一个标量,它的符号将被复制到 x1 的所有元素。

Parameters
  • x1 (array_like) – 要改变符号的值。

  • x2 (array_like) – x2 的符号被复制到 x1

  • out (Tensor, None, 或 tupleTensor 和 None, 可选) – 结果存储的位置。如果提供,它必须具有和输入相同的广播形状。如果未提供或None,将返回一个新分配的张量。元组(仅作为关键字参数可能)必须具有与输出数量相等的长度。

  • where (array_like, 可选) – 值为 True 表示在该位置计算 ufunc,值为 False 表示保持输出中的该值不变。

  • **kwargs

Returns

outx1 的值带有 x2 的符号。

Return type

类数组对象

示例

>>> import mars.tensor as mt
>>> mt.copysign(1.3, -1).execute()
-1.3
>>> (1/mt.copysign(0, 1)).execute()
inf
>>> (1/mt.copysign(0, -1)).execute()
-inf
>>> mt.copysign([-1, 0, 1], -1.1).execute()
array([-1., -0., -1.])
>>> mt.copysign([-1, 0, 1], mt.arange(3)-1).execute()
array([-1.,  0.,  1.])