diff --git a/doc/fluid/api/paddle/argsort.rst b/doc/fluid/api/paddle/argsort.rst index 43be9de959815defb112d674db64f06410ffd4b7..716f7e79312bcc0f83abff33bf3684b6a6b68500 100644 --- a/doc/fluid/api/paddle/argsort.rst +++ b/doc/fluid/api/paddle/argsort.rst @@ -2,6 +2,6 @@ argsort ------------------------------- -:doc_source: paddle.fluid.layers.argsort +:doc_source: paddle.tensor.argsort diff --git a/doc/fluid/api/paddle/sort.rst b/doc/fluid/api/paddle/sort.rst index e22a93a5d3e1f657060756e6a49153423a344ef3..5f87357ccb39b52e975ef73c33b557f220c292a2 100644 --- a/doc/fluid/api/paddle/sort.rst +++ b/doc/fluid/api/paddle/sort.rst @@ -2,6 +2,6 @@ sort ------------------------------- -:doc_source: paddle.fluid.layers.argsort +:doc_source: paddle.tensor.sort diff --git a/doc/fluid/api/tensor/argsort.rst b/doc/fluid/api/tensor/argsort.rst index 927d474d151f63a9bb204f3adc54085574b0f1a6..2168777783e8ff4a2ba5e217ce3f9982f4f97d8f 100644 --- a/doc/fluid/api/tensor/argsort.rst +++ b/doc/fluid/api/tensor/argsort.rst @@ -2,6 +2,6 @@ argsort ------------------------------- -:doc_source: paddle.fluid.layers.argsort +:doc_source: paddle.tensor.argsort diff --git a/doc/fluid/api/tensor/sort.rst b/doc/fluid/api/tensor/sort.rst index 14cc6f45b41d5e7a832efdf2244bae362033ff83..21da4ab432d026f281b69183d95134f1fbadd553 100644 --- a/doc/fluid/api/tensor/sort.rst +++ b/doc/fluid/api/tensor/sort.rst @@ -2,6 +2,6 @@ sort ------------------------------- -:doc_source: paddle.fluid.layers.argsort +:doc_source: paddle.tensor.sort diff --git a/doc/fluid/api_cn/paddle_cn/argsort_cn.rst b/doc/fluid/api_cn/paddle_cn/argsort_cn.rst index 26f231fcca6407cab2e849de6efa95e3ceda4d5e..e9f128a9ae18a775306eb869b4e3e769270ed1e3 100644 --- a/doc/fluid/api_cn/paddle_cn/argsort_cn.rst +++ b/doc/fluid/api_cn/paddle_cn/argsort_cn.rst @@ -2,6 +2,6 @@ argsort ------------------------------- -:doc_source: paddle.fluid.layers.argsort +:doc_source: paddle.tensor.argsort diff --git a/doc/fluid/api_cn/paddle_cn/sort_cn.rst b/doc/fluid/api_cn/paddle_cn/sort_cn.rst index 69444809a61f1ae58fea852f6265b22bbd2ddc45..d4ee20b7e89a316cb2d7e72f54c2d58ec6191fc5 100644 --- a/doc/fluid/api_cn/paddle_cn/sort_cn.rst +++ b/doc/fluid/api_cn/paddle_cn/sort_cn.rst @@ -2,6 +2,6 @@ sort ------------------------------- -:doc_source: paddle.fluid.layers.argsort +:doc_source: paddle.tensor.sort diff --git a/doc/fluid/api_cn/tensor_cn/argsort_cn.rst b/doc/fluid/api_cn/tensor_cn/argsort_cn.rst index ecf72edcbdaf9720429fcdfad918ca5bd9155e6d..3e1c2c49b70d25d9ccf7cb9ce38c870a249b7439 100644 --- a/doc/fluid/api_cn/tensor_cn/argsort_cn.rst +++ b/doc/fluid/api_cn/tensor_cn/argsort_cn.rst @@ -2,6 +2,62 @@ argsort ------------------------------- -:doc_source: paddle.fluid.layers.argsort +.. py:function:: paddle.argsort(x, axis=-1, descending=False, name=None) +:alias_main: paddle.argsort +:alias: paddle.argsort,paddle.tensor.argsort,paddle.tensor.search.argsort + +对输入变量沿给定轴进行排序,输出排序好的数据的相应索引,其维度和输入相同。**默认升序排列,如果需要降序排列设置** ``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,可选) – 具体用法请参见 :ref:`api_guide_Name` ,一般无需设置,默认值为None。 + +返回:排序后索引信息(与 ``x`` 维度信息一致),数据类型为int64。 + +返回类型:Tensor + +**代码示例**: + +.. code-block:: python + + import paddle + import paddle.imperative as imperative + import numpy as np + + paddle.enable_imperative() + input_array = np.array([[[5,8,9,5], + [0,0,1,7], + [6,9,2,4]], + [[5,2,4,2], + [4,7,7,9], + [1,7,0,6]]]).astype(np.float32) + x = imperative.to_variable(input_array) + out1 = paddle.argsort(x=x, axis=-1) + out2 = paddle.argsort(x=x, axis=0) + out3 = paddle.argsort(x=x, axis=1) + print(out1.numpy()) + #[[[0 3 1 2] + # [0 1 2 3] + # [2 3 0 1]] + # [[1 3 2 0] + # [0 1 2 3] + # [2 0 3 1]]] + print(out2.numpy()) + #[[[0 1 1 1] + # [0 0 0 0] + # [1 1 1 0]] + # [[1 0 0 0] + # [1 1 1 1] + # [0 0 0 1]]] + print(out3.numpy()) + #[[[1 1 1 2] + # [0 0 2 0] + # [2 2 0 1]] + # [[2 0 2 0] + # [1 1 0 2] + # [0 2 1 1]]] diff --git a/doc/fluid/api_cn/tensor_cn/sort_cn.rst b/doc/fluid/api_cn/tensor_cn/sort_cn.rst index 9f627143f3ce7834c17c065280e53129c827c475..f57b1e438b8bf9bcb7eb6544d5efcccb413e7a3b 100644 --- a/doc/fluid/api_cn/tensor_cn/sort_cn.rst +++ b/doc/fluid/api_cn/tensor_cn/sort_cn.rst @@ -3,73 +3,69 @@ sort ------------------------------- -.. py:function:: paddle.sort(input, axis=-1, descending=False, out=None, name=None) +.. py:function:: paddle.sort(x, axis=-1, descending=False, name=None) :alias_main: paddle.sort :alias: paddle.sort,paddle.tensor.sort,paddle.tensor.search.sort -:update_api: paddle.fluid.layers.argsort - 对输入变量沿给定轴进行排序,输出排序好的数据和相应的索引,其维度和输入相同。**默认升序排列,如果需要降序排列设置** ``descending=True`` 。 参数: - - **input** (Variable) - 输入的多维 ``Tensor`` ,支持的数据类型:float32、float64、int16、int32、int64、uint8。 + - **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。 - - **out** (Variable, 可选) – 指定存储运算结果的Tensor(与 ``input`` 维度相同、数据类型相同)。如果设置为None或者不设置,将创建新的Tensor存储运算结果,默认值为None。 - **name** (str,可选) – 具体用法请参见 :ref:`api_guide_Name` ,一般无需设置,默认值为None。 -返回:一组已排序的输出(与 ``input`` 维度相同、数据类型相同)和索引(数据类型为int64)。 +返回:一组已排序的输出(与 ``x`` 维度相同、数据类型相同)和索引(数据类型为int64)。 -返回类型:tuple[Variable] +返回类型:tuple[Tensor] **代码示例**: .. code-block:: python - import paddle - import paddle.fluid as fluid - import numpy as np - - in1 = np.array([[[5,8,9,5], - [0,0,1,7], - [6,9,2,4]], - [[5,2,4,2], - [4,7,7,9], - [1,7,0,6]]]).astype(np.float32) - with fluid.dygraph.guard(): - x = fluid.dygraph.to_variable(in1) - out1 = paddle.sort(input=x, axis=-1) # same as axis==2 - out2 = paddle.sort(input=x, axis=0) - out3 = paddle.sort(input=x, axis=1) - print(out1[0].numpy()) - # [[[5. 5. 8. 9.] - # [0. 0. 1. 7.] - # [2. 4. 6. 9.]] - # [[2. 2. 4. 5.] - # [4. 7. 7. 9.] - # [0. 1. 6. 7.]]] - print(out1[1].numpy()) - # [[[0 3 1 2] - # [0 1 2 3] - # [2 3 0 1]] - # [[1 3 2 0] - # [0 1 2 3] - # [2 0 3 1]]] - print(out2[0].numpy()) - # [[[5. 2. 4. 2.] - # [0. 0. 1. 7.] - # [1. 7. 0. 4.]] - # [[5. 8. 9. 5.] - # [4. 7. 7. 9.] - # [6. 9. 2. 6.]]] - print(out3[0].numpy()) - # [[[0. 0. 1. 4.] - # [5. 8. 2. 5.] - # [6. 9. 9. 7.]] - # [[1. 2. 0. 2.] - # [4. 7. 4. 6.] - # [5. 7. 7. 9.]]] - + import paddle + import paddle.imperative as imperative + import numpy as np + + paddle.enable_imperative() + input_array = np.array([[[5,8,9,5], + [0,0,1,7], + [6,9,2,4]], + [[5,2,4,2], + [4,7,7,9], + [1,7,0,6]]]).astype(np.float32) + x = imperative.to_variable(input_array) + out1 = paddle.sort(x=x, axis=-1) + out2 = paddle.sort(x=x, axis=0) + out3 = paddle.sort(x=x, axis=1) + print(out1[0].numpy()) + #[[[5. 5. 8. 9.] + # [0. 0. 1. 7.] + # [2. 4. 6. 9.]] + # [[2. 2. 4. 5.] + # [4. 7. 7. 9.] + # [0. 1. 6. 7.]]] + print(out1[1].numpy()) + #[[[0 3 1 2] + # [0 1 2 3] + # [2 3 0 1]] + # [[1 3 2 0] + # [0 1 2 3] + # [2 0 3 1]]] + print(out2[0].numpy()) + #[[[5. 2. 4. 2.] + # [0. 0. 1. 7.] + # [1. 7. 0. 4.]] + # [[5. 8. 9. 5.] + # [4. 7. 7. 9.] + # [6. 9. 2. 6.]]] + print(out3[0].numpy()) + #[[[0. 0. 1. 4.] + # [5. 8. 2. 5.] + # [6. 9. 9. 7.]] + # [[1. 2. 0. 2.] + # [4. 7. 4. 6.] + # [5. 7. 7. 9.]]]