mindspore.ops.Sort
- class mindspore.ops.Sort(axis=- 1, descending=False)[源代码]
根据指定的轴对输入Tensor的元素进行排序。默认为升序排序。
Warning
目前仅支持float16数据类型。如果使用float32类型可能导致数据精度损失。
- 参数:
axis (int) - 指定排序的轴。默认值:-1,表示指定最后一维。当前Ascend后端只支持对最后一维进行排序。
descending (bool) - 指定排序方式。如果 descending 为True,则根据value对元素进行降序排序。默认值:False。
- 输入:
x (Tensor) - Sort的输入,任意维度的Tensor,数据类型为float16或float32。
- 输出:
y1 (Tensor) - Tensor,其值为排序后的值,shape和数据类型与输入相同。
y2 (Tensor) - 输入Tensor,其元素的索引。数据类型为int32。
- 异常:
TypeError - axis 不是int。
TypeError - descending 不是bool。
TypeError - x 的数据类型既不是float16也不是float32。
ValueError - 当 axis 取值不在[-len(x.shape), len(x.shape))范围内。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> x = Tensor(np.array([[8, 2, 1], [5, 9, 3], [4, 6, 7]]), mindspore.float16) >>> sort = ops.Sort() >>> output = sort(x) >>> # The output below is based on the Ascend platform. >>> print(output) (Tensor(shape=[3, 3], dtype=Float16, value= [[ 1.0000e+00, 2.0000e+00, 8.0000e+00], [ 3.0000e+00, 5.0000e+00, 9.0000e+00], [ 4.0000e+00, 6.0000e+00, 7.0000e+00]]), Tensor(shape=[3, 3], dtype=Int32, value= [[2, 1, 0], [2, 0, 1], [0, 1, 2]]))