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_min 和 a_max 不能同时为 None。
a_max(标量或类似数组或None)– 最大值。如果None,则不在上限区间边缘进行裁剪。a_min和a_max中最多只能有一个是None。如果a_min或a_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])