mars.tensor.core.Tensor.sort#

Tensor.sort(axis=-1, kind=None, parallel_kind=None, psrs_kinds=None, order=None)[来源]#

就地对张量进行排序。

Parameters
  • axis (int, 可选) – 用于排序的轴。默认值是 -1,表示沿最后一个轴排序。

  • kind ({'quicksort', 'mergesort', 'heapsort', 'stable'}, 可选) – 排序算法。默认是‘quicksort’。

  • parallel_kind ({'PSRS'}, 可选) – 并行排序算法,详情请参见: http://csweb.cs.wfu.edu/bigiron/LittleFE-PSRS/build/html/PSRSalgorithm.html

  • psrs_kinds (包含 3 个元素的列表, 可选) – PSRS 算法中的排序算法。

  • order (strlist of str, 可选) – 当 a 是一个具有定义字段的张量时,此参数指定 首先比较哪些字段,其次比较哪些字段等。可以 将单个字段指定为字符串,并且并非所有字段都需要指定, 但未指定的字段仍将被使用,按它们在 dtype 中出现的顺序来打破平局。

另请参阅

numpy.sort

返回一个排序后的张量副本。

argsort

间接排序。

lexsort

对多个关键字进行间接稳定排序。

searchsorted

在排序的张量中查找元素。

partition

部分排序。

备注

有关不同排序算法的说明,请参见 sort

示例

>>> import mars.tensor as mt
>>> a = mt.array([[1,4], [3,1]])
>>> a.sort(axis=1)
>>> a.execute()
array([[1, 4],
       [1, 3]])
>>> a.sort(axis=0)
>>> a.execute()
array([[1, 3],
       [1, 4]])

使用order关键字指定一个字段用于对结构化张量进行排序:

>>> a = mt.array([('a', 2), ('c', 1)], dtype=[('x', 'S1'), ('y', int)])
>>> a.sort(order='y')
>>> a.execute()
array([('c', 1), ('a', 2)],
      dtype=[('x', '|S1'), ('y', '<i4')])