parameters: (a)
docstring: Sort a complex array using the real part first, then the imaginary part.
  
      Parameters
      ----------
      a : array_like
          Input array
  
      Returns
      -------
      out : complex ndarray
          Always returns a sorted complex array.
  
      Examples
      --------
      >>> np.sort_complex([5, 3, 6, 2, 1])
      array([1.+0.j, 2.+0.j, 3.+0.j, 5.+0.j, 6.+0.j])
  
      >>> np.sort_complex([1 + 2j, 2 - 1j, 3 - 2j, 3 - 3j, 3 + 5j])
      array([1.+2.j,  2.-1.j,  3.-3.j,  3.-2.j,  3.+5.j])
docstring_summary: Sort a complex array using the real part first, then the imaginary part.
docstring_tokens: Sort a complex array using the real part first then the imaginary part .
function: def sort_complex(a):
      """
      Sort a complex array using the real part first, then the imaginary part.
  
      Parameters
      ----------
      a : array_like
          Input array
  
      Returns
      -------
      out : complex ndarray
          Always returns a sorted complex array.
  
      Examples
      --------
      >>> np.sort_complex([5, 3, 6, 2, 1])
      array([1.+0.j, 2.+0.j, 3.+0.j, 5.+0.j, 6.+0.j])
  
      >>> np.sort_complex([1 + 2j, 2 - 1j, 3 - 2j, 3 - 3j, 3 + 5j])
      array([1.+2.j,  2.-1.j,  3.-3.j,  3.-2.j,  3.+5.j])
  
      """
      b = array(a, copy=True)
      b.sort()
      if not issubclass(b.dtype.type, _nx.complexfloating):
          if b.dtype.char in 'bhBH':
              return b.astype('F')
          elif b.dtype.char == 'g':
              return b.astype('G')
          else:
              return b.astype('D')
      else:
          return b
function_tokens: def sort_complex ( a ) : b = array ( a , copy = True ) b . sort ( ) if not issubclass ( b . dtype . type , _nx . complexfloating ) : if b . dtype . char in 'bhBH' : return b . astype ( 'F' ) elif b . dtype . char == 'g' : return b . astype ( 'G' ) else : return b . astype ( 'D' ) else : return b