argsort

paddle.argsort ( x, axis=- 1, descending=False, name=None ) [源代码]

对输入变量沿给定轴进行排序,输出排序好的数据的相应索引,其维度和输入相同。默认升序排列,如果需要降序排列设置 descending=True

参数:

  • x (Tensor) - 输入的多维 Tensor ,支持的数据类型:float32、float64、int16、int32、int64、uint8。

  • axis (int,可选) - 指定对输入Tensor进行运算的轴, axis 的有效范围是[-R, R),R是输入 x 的Rank, axis 为负时与 axis +R 等价。默认值为0。

  • descending (bool,可选) - 指定算法排序的方向。如果设置为True,算法按照降序排序。如果设置为False或者不设置,按照升序排序。默认值为False。

  • name (str,可选) – 具体用法请参见 Name ,一般无需设置,默认值为None。

返回:Tensor, 排序后索引信息(与 x 维度信息一致),数据类型为int64。

代码示例

  1. import paddle
  2. x = paddle.to_tensor([[[5,8,9,5],
  3. [0,0,1,7],
  4. [6,9,2,4]],
  5. [[5,2,4,2],
  6. [4,7,7,9],
  7. [1,7,0,6]]], dtype='float32')
  8. out1 = paddle.argsort(x=x, axis=-1)
  9. out2 = paddle.argsort(x=x, axis=0)
  10. out3 = paddle.argsort(x=x, axis=1)
  11. print(out1)
  12. #[[[0 3 1 2]
  13. # [0 1 2 3]
  14. # [2 3 0 1]]
  15. # [[1 3 2 0]
  16. # [0 1 2 3]
  17. # [2 0 3 1]]]
  18. print(out2)
  19. #[[[0 1 1 1]
  20. # [0 0 0 0]
  21. # [1 1 1 0]]
  22. # [[1 0 0 0]
  23. # [1 1 1 1]
  24. # [0 0 0 1]]]
  25. print(out3)
  26. #[[[1 1 1 2]
  27. # [0 0 2 0]
  28. # [2 2 0 1]]
  29. # [[2 0 2 0]
  30. # [1 1 0 2]
  31. # [0 2 1 1]]]