mars.tensor.clip#

mars.tensor.clip(a, a_min, a_max, out=None)[来源]#

剪裁(限制)张量中的值。

给定一个区间,超出区间的值被裁剪到区间的边缘。例如,如果指定了一个区间[0, 1],那么小于0的值变为0,大于1的值变为1。

Parameters
  • a (array_like) – 包含要裁剪的元素的张量。

  • a_min (标量或类似数组或 None) – 最小值。如果 None,则在下边界不进行裁剪。a_mina_max 不能同时为 None

  • a_max(标量或类似数组或None)– 最大值。如果None,则不在上限区间边缘进行裁剪。a_mina_max中最多只能有一个是None。如果a_mina_max是类似数组的,则三个数组将被广播以匹配它们的形状。

  • out (Tensor, 可选) – 结果将放置在该张量中。它可能是用于就地裁剪的输入数组。 out 必须具有正确的形状来容纳输出。它的类型是保持不变的。

Returns

clipped_array – 一个张量,其元素为a的值,但小于a_min的值被替换为a_min,大于a_max的值被替换为a_max

Return type

张量

示例

>>> import mars.tensor as mt
>>> a = mt.arange(10)
>>> mt.clip(a, 1, 8).execute()
array([1, 1, 2, 3, 4, 5, 6, 7, 8, 8])
>>> a.execute()
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> mt.clip(a, 3, 6, out=a).execute()
array([3, 3, 3, 3, 4, 5, 6, 6, 6, 6])
>>> a = mt.arange(10)
>>> a.execute()
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> mt.clip(a, [3, 4, 1, 1, 1, 4, 4, 4, 4, 4], 8).execute()
array([3, 4, 2, 3, 4, 5, 6, 7, 8, 8])