### Navigation

- index
- modules |
- next |
- previous |
- NumPy v1.3 Manual (DRAFT) »
- NumPy Reference »
- Routines »
- Sorting and searching »

# numpy.sort

`numpy.``sort`(a, axis=-1, kind='quicksort', order=None)

  Return a sorted copy of an array.

  Parameters: | a : array_like Array to be sorted. axis : int or None, optional Axis along which to sort. If None, the array is flattened before sorting. The default is -1, which sorts along the last axis. kind : {‘quicksort’, ‘mergesort’, ‘heapsort’}, optional Sorting algorithm. Default is ‘quicksort’. order : list, optional When a is a structured array, this argument specifies which fields to compare first, second, and so on. This list does not need to include all of the fields.
  Returns: | sorted_array : ndarray Array of the same type and shape as a.

  See also

  `ndarray.sort`
    Method to sort an array in-place.
  `argsort`
    Indirect sort.
  `lexsort`
    Indirect stable sort on multiple keys.
  `searchsorted`
    Find elements in a sorted array.

  Notes

  The various sorting algorithms are characterized by their average speed, worst case performance, work space size, and whether they are stable. A stable sort keeps items with the same key in the same relative order. The three available algorithms have the following properties:

  kind | speed | worst case | work space | stable
  --- | --- | --- | --- | ---
  ‘quicksort’ | 1 | O(n^2) | 0 | no
  ‘mergesort’ | 2 | O(n*log(n)) | ~n/2 | yes
  ‘heapsort’ | 3 | O(n*log(n)) | 0 | no

  All the sort algorithms make temporary copies of the data when sorting along any but the last axis. Consequently, sorting along the last axis is faster and uses less space than sorting along any other axis.

  Examples

      >>> a = np.array([[1,4],[3,1]])
      >>> np.sort(a)                # sort along the last axis
      array([[1, 4],
             [1, 3]])
      >>> np.sort(a, axis=None)     # sort the flattened array
      array([1, 1, 3, 4])
      >>> np.sort(a, axis=0)        # sort along the first axis
      array([[1, 1],
             [3, 4]])

  Use the order keyword to specify a field to use when sorting a structured array:

      >>> dtype = [('name', 'S10'), ('height', float), ('age', int)]
      >>> values = [('Arthur', 1.8, 41), ('Lancelot', 1.9, 38),
      ...           ('Galahad', 1.7, 38)]
      >>> a = np.array(values, dtype=dtype)       # create a structured array
      >>> np.sort(a, order='height')                        # doctest: +SKIP
      array([('Galahad', 1.7, 38), ('Arthur', 1.8, 41),
             ('Lancelot', 1.8999999999999999, 38)],
            dtype=[('name', '|S10'), ('height', '<f8'), ('age', '<i4')])

  Sort by age, then height if ages are equal:

      >>> np.sort(a, order=['age', 'height'])               # doctest: +SKIP
      array([('Galahad', 1.7, 38), ('Lancelot', 1.8999999999999999, 38),
             ('Arthur', 1.8, 41)],
            dtype=[('name', '|S10'), ('height', '<f8'), ('age', '<i4')])

### Navigation

- index
- modules |
- next |
- previous |
- NumPy v1.3 Manual (DRAFT) »
- NumPy Reference »
- Routines »
- Sorting and searching »